JeekLee

Spring Batch 최적화: Partitioning 및 멀티스레딩

I. 문제 상황 (그림 I-1) 기능 개선 전, 배치 실행 결과 공공 API로부터 전국의 기업 정보를 동기화하는 배치 기능을 구현했다. 약 120만 건의 데이터를 페이지네이션 방식으로 가져와 데이터베이스에 저장하는 단순한 작업이지만, 처리 시간은 예상보다 훨씬 길었다. 총 데이터: 약 1,200,000건 페이지당 데이터: 1,000건 총 페이지...

프로젝트 CD 최적화: 변경된 모듈만 배포하기

이전 글에서 CI 최적화를 통해 변경된 모듈만 테스트하는 방법을 다뤘다면, 이번에는 CD(Continuous Delivery)를 최적화 방법을 정리해보려 한다. I. 문제 상황: 불필요한 배포 멀티모듈 프로젝트에서 CD를 구성할 때 마주하는 가장 큰 문제는 불필요한 배포가 너무 자주 발생한다는 것이다. 예를 들어 프로젝트 구조가 다음과 같다고...

프로젝트 CI 최적화: 변경된 모듈만 테스트하기

멀티모듈 프로젝트가 커질수록 CI 파이프라인의 실행 시간이 기하급수적으로 증가한다. 특히 단일 모듈만 수정했을 뿐인데 전체 모듈의 테스트가 실행되면, 개발자는 불필요하게 긴 시간을 기다려야 한다. 이번 글에서는 GitHub Actions를 활용해 변경된 모듈만 감지하고, Matrix Strategy로 병렬 테스트를 수행하는 방법을 정리해보려 한다. ...

멀티 모듈 및 DDD에 대한 질문과 답변

멀티모듈 및 DDD로 구성한 사이드 프로젝트 진행 중 BE 팀원에게 이런 질문을 받았다. 어플리케이션 계층에 Repository의 Interface가 존재하는 이유가 뭔가요? 인프라 계층에서 Interface를 정의하고 구현하면 되지 않을까요? 어플리케이션 계층과 도메인 계층에서 공통적으로 서비스 패키지가 존재하는 이유가 뭔가요? 역할...