전체 글

개발에 대한 내용을 주로 다루는 블로그입니다.
생각

신의 존재

신이 존재한다고 생각하시나요? 저는 그럴지도 모른다고 생각합니다. 예전에는 신이란 건 없다고 생각했지만 요즘은 조금 달라졌습니다. 과학 기술이 발전하면서 세상이 돌아가는 이치가 과학적으로 설명되면서 신이란건 없다는 생각이 컸었는데, 어찌보면 이 이치가 신이 만들어낸 것이 아닌가 싶네요. 컴퓨터를 예로 들어 설명해보겠습니다. 개발자는 프로그래밍을 해서 프로그램을 실행시킵니다. 프로그램 안에서는 많은 객체들이 생성되었다가 사라지기를 반복합니다. 어느 날 한 객체가 의문을 품기 시작했습니다. "나는 누구일까, 나는 왜 생겨났으며 왜 이런 값들을 가지고 있을까?" "이 세상을 만든 자는 누구일까?" 시간이 흐르면서 이런 객체들의 생각이 모이고 모여서 점차 비밀을 알아내기 시작했습니다. 객체들이 살아가는 세상의 ..

기타

팀이 빠지기 쉬운 5가지 함정 책 요약 내용

팀이 빠지기 쉬운 5가지 함정이라는 책을 읽고 요약 정리해본 내용이다. 원책 제목은 The Five dysfunctions of a team 이다. 2007년에 출간되었던 책인데 작년에 팀워크의 부활이라는 책으로 재출간 되었나보다. 팀워크의 부활 실리콘밸리 최고의 경영 컨설턴트 패트릭 렌시오니. 그는 〈포춘〉 500대 기업을 포함하여 프로스포츠팀, 군대, 비영리 단체, 대학, 교회 등 다양한 조직을 컨설팅하면서 뛰어난 인재들이 모여 있는 조직이 항상 좋은 결과를 내는 것은 아니라는 사실을 깨달았다. 그 후 그는 팀워크에 대한 연구를 본격적으로 시작했고, 이 책 《팀워크의 부활》이 바로 그 결과물이다. 저자는 이 책에서 가상의 기업 디시전테크를 무대로 각 개인은 뛰어난 인재들이지만 모이기만 하면 삐걱거리는..

개발

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/* 조건을 잘 설정하면 특정 문자로 시작하는 디렉토리만 조회하는 등의 응용도 가능하다.

bebeside77
Spread your wings