개발

개발

Colima Docker DNS 오류

Docker Desktop 유료화로 인한 대체로 Colima Docker를 사용하고 있었다. 그런데 터미널에서 docker login을 하거나 이미지를 pull할 때 다음과 같은 에러가 발생하기 시작했다. Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.107.1:53: read udp 192.168.5.15:52605->192.168.107.1:53: i/o timeout 에러 내용으로 보면 registry-1.docker.io 도메인에 대한 dns lookup이 안되서 timeout이 발생했다는 것 같다. 구글링해보니 비슷한 증상을 겪는 사람..

개발

DDD START! 책 내용 정리

DDD START! 도메인 주도 설계 구현과 핵심 개념 익히기 책 내용 요약 정리 내용입니다. DDD Start! 이 책은 DDD(도메인 주도 설계)를 처음 접하는 개발자를 위한 책이다. DDD를 실제 업무에 적용할 수 있도록 기본적인 이론을 설명하고 이를 구현한 코드를 바탕으로 입문자가 헤매지 않고 DDD를 학습할 수 있도록 했다. 애그리거트, 엔티티, 리포지토리 등 DDD의 핵심 패턴을 이용해서 도메인 모델을 구현하는 방법을 설명한다. 도메인 모델의 트랜잭션 충돌을 처리하는 기법(선점 잠금, 비선점 잠금)을 살펴보고, 도메인 이벤트를 이용해서 도메인 영역 간의 의존을 낮추는 방법과 명령 모델과 조회 모델을 나누는 기법에 대해서도 배운다. 스프링과 JPA를 이용해서 실제 동작하는 코드를 함께 제공하고 ..

개발/자바

JPA N+1 문제와 해결 방법

JPA를 사용할 때 N+1 문제는 성능상 가장 주의해야하는 부분 중 하나이다. 부서와 사원 같은 1:N 관계의 엔티티 구조에서 부서만 먼저 조회한 뒤 나중에 부서에 속한 사원 목록에 접근할 때 조회한 부서 수만큼 사원 목록 조회 쿼리가 수행되면서 성능 문제가 발생하는 경우라고 할 수 있다. N+1 번 쿼리가 수행된다고 해서 N+1 문제라고 부른다. 1은 처음에 부서 목록 조회한 쿼리, N은 조회한 부서 개수만큼 수행되는 사원 목록 조회 쿼리. 부서 엔티티에서 사원 목록 fetch 설정을 즉시 로딩(EAGER), 지연 로딩(LAZY)으로 하던 모두 발생할 수 있다. 즉시 로딩 다음과 같이 EntityManager를 통해 조회하면 즉시 로딩 설정된 사원 목록이 같이 조회되기 때문에 N+1 문제가 발생하지 않..

개발/Data Engineering

Apache Hudi Hive Sync

Apache Hudi를 사용해서 Hudi 테이블을 만들어서 운영할 때 Hudi 테이블을 Hive 테이블로도 만들어서 사용하고 싶을 수 있다. Apache Hudi에 대한 소개는 이곳은 참고 : Apache Hudi 소개 일단 Hive 테이블로도 만들어두면 데이터를 확인하는 것이 간편하다. Hive Metastore에 테이블을 등록해두면 Spark 또는 Hive로 덜 번거롭게 데이터를 확인해볼 수 있기 때문이다. Hive Sync를 한다는 것은 Hudi 테이블 경로를 location으로 하는 Hive 테이블을 생성하거나 스키마를 동기화한다는 것을 의미한다. Hudi 테이블 데이터를 복제하여 새롭게 Hive 테이블용 데이터를 생성하고 복제된 데이터를 location으로 하는 Hive 테이블을 만든다는 것은 ..

개발/Data Engineering

HDFS file count 조회

HDFS의 특정 디렉토리의 파일 갯수를 알고 싶을 때가 있다. 그럴 때 사용할 수 있는 명령어이다. hdfs dfs -count {path} # 1000개를 K 단위로 바꾸어서 보여준다 hdfs dfs -count -h {path} 특정 디렉토리 내 하위 디렉토리들의 정보를 다음과 같이 한번에 조회할 수도 있다. hdfs dfs -count hdfs://path/to/count/* 조건을 잘 설정하면 특정 문자로 시작하는 디렉토리만 조회하는 등의 응용도 가능하다.

개발/Data Engineering

Apache Airflow 재수행 방법 정리

Apache Airflow을 구축해서 운영하다보면 이런저런 이유들로 인해 DAG을 재수행해야하는 일이 발생한다. raw 데이터 오류, 집계 로직 오류 등의 이유로.. 재수행하는 방법에 대해서 정리해본다. 일단 크게 DAG run 단위로 재수행하거나 task 단위로 재수행하는 방법으로 구분할 수 있을 것 같다. # DAG run clear 하기 DAG run을 clear해서 DAG run이 다시 수행되게 하는 방법이다. DAG run을 눌러 나오는 Clear 버튼을 눌러 clear하면 해당 DAG run이 재수행된다. 상단의 Browse > DAG Runs 메뉴에서 목록으로 DAG run을 조회하여 Clear the status 버튼을 통해 Clear하는 방법도 가능하다. # Task clear 하기 ta..

bebeside77
'개발' 카테고리의 글 목록 (2 Page)