Technology
최근글
- Java [JAVA] ConcurrentHashMap 에 대해서 ConcurrentHashMap은 Java에서 멀티스레드 환경에서 안전하게 사용될 수 있도록 설계된 해시맵 구현체입니다. 다음은 ConcurrentHashMap의 주요 특징입니다:동시성 제공:ConcurrentHashMap은 멀티스레드 환경에서 여러 스레드가 동시에 데이터를 읽고 수정할 수 있도록 설계되었습니다.내부적으로 분할 잠금(Shard Locking) 메커니즘을 사용하여 성능을 최적화합니다. 이는 맵이 여러 개의 세그먼트(segment) 로 나뉘어 각 세그먼트에 대해 개별적으로 잠금을 걸기 때문에, 여러 스레드가 동시에 다른 세그먼트를 수정할 수 있습니다.잠금 수준 최적화:HashTable처럼 전체 맵에 대해 잠금을 걸지 않고, 데이터의 특정 버킷(bucket) 단위에만 잠금을 걸기 때문에 동시성..
- AirFlow Airflow 병렬 처리의 함정: Worker 분산 없이 처리하면? Airflow에서 병렬 처리를 구현할 때 많은 사람들이 성능이 크게 향상될 것으로 기대하지만, Worker 분산 처리가 설정되어 있지 않은 경우에는 오히려 순차 처리보다 더 느려질 수 있는 상황이 발생합니다. 이번 포스팅에서는 Airflow의 병렬 처리와 순차 처리의 테스트 결과를 비교하고, 그 이유를 살펴보겠습니다. 테스트 결과 비교Task 순차 처리전체 데이터 수300,000태스크별 데이터 수300,000전체 소요 시간1시간 56분 Task 병렬 처리전체 데이터 수300,000태스크별 데이터 수75,000전체 소요 시간2시간 1분 테스트 결과를 보면, 병렬 처리의 전체 소요 시간이 순차 처리보다 오히려 더 길어졌음을 알 수 있습니다. 병렬 처리를 했음에도 불구하고 성능이 기대만큼 향상되지 않은 이유는..
- AirFlow [AirFlow] 특정 Role 만 특정 Dag 권한주고 싶다. 난 Admin Role 만 읽고 수정 권한을 주고 싶다,from airflow import DAGfrom airflow.operators.dummy_operator import DummyOperatorfrom datetime import datetimewith DAG( 'TEST_1', default_args={'start_date': datetime(2023, 10, 7)}, schedule_interval='@daily', catchup=False, access_control={ 'Admin': {'can_read', 'can_edit'}, # Admin 역할에만 읽기 및 수정 권한 부여 },) as dag: start = DummyOperator(..
인기글
- troubleshooting [이클립스] java virtual machine launcher 오류 자바 버전 업데이트 후 이클립스 실행 오류 해결 방법 자바(Java) 버전을 업데이트한 후 이클립스(Eclipse)를 실행할 때 발생하는 java virtual machine launcher 오류를 해결하는 간단한 방법을 소개합니다. 오류 상황 자바 버전 업데이트 후 이클립스를 실행하면 java virtual machine launcher 오류가 발생합니다. 해결 방법: eclipse.ini 파일 수정 이클립스가 설치된 폴더에서 eclipse.ini 파일을 찾아 메모장으로 엽니다. 파일의 내용은 대략 다음과 같을 것입니다: -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library plugins/org.eclip..
- Spring Batch Spring Batch 로 대용량 일괄처리하기. (대용량 데이터 조회 > 액셀 생성 > 메일 발송) 이슈 Web 에서 대용량 액셀을 생성하는 로직이 있었는데 응답 시간이 지연이 되어 에러가 발생하는 이슈에 부딫쳤습니다. 대안으로 java daemon 을 활용하라는 이야기가 있었지만 (?) 사실 써보고 싶기도 했던 Spring Batch 에 도전해보게 되었습니다 ! 하하하 ... Spring Batch 를 처음 사용해보니 Spring Batch 에 대해 뭔지 알아봐야 했습니다. Spring Batch는 대량의 데이터 처리를 위한 경량화된 프레임워크로, 반복적인 작업을 수행하는 일괄 처리(Batch Processing) 작업을 효율적으로 처리할 수 있는 기능을 제공합니다. 제가 하려고 하는 업무에 딱 ! 이라는 생각이 들어서 Batch 로 프로세스 개발을 시작해보겠습니다. ( 자기 합리화가 시작 .. ? ..
- html CSS를 이용하여 부모 요소의 높이에 자식 요소를 맞추는 방법 CSS를 이용하여 부모 요소의 높이에 자식 요소를 맞추는 방법 웹 페이지 레이아웃을 디자인할 때, 부모 요소(div)의 높이를 자식 요소에 자동으로 적용하고 싶은 경우가 종종 있습니다. 특히, 자식 요소들이 부모 요소의 높이에 꽉 차게 표시되어야 할 때 이 방법이 유용합니다. 이 포스트에서는 CSS만을 사용하여 이를 해결하는 방법을 소개하겠습니다. 문제 상황 부모 요소에게 height: 100px;를 주었을 때, 자식 요소들이 자동으로 부모의 높이를 채우도록 설정하고 싶습니다. 이를 위해 자식 요소들에게 하드코딩으로 height: 100px;를 설정하는 것이 아니라, 더 유연한 방법이 필요합니다. 해결 방법 자식 요소들에게 다음과 같은 CSS 속성을 적용하여, 부모 요소의 높이에 맞춥니다. .child-..