
옴니채널 재고 정합성 한계에 대응하는 인벤토리 데이터 파이프라인 구축기
옴니채널 재고 정합성과 확장성 문제를 해결하기 위해 인벤토리 데이터 파이프라인을 이벤트 기반으로 재설계했습니다. Spring Batch, Kafka Fan-Out, Push/Pull 분리로 리드타임과 부하를 줄였습니다.

옴니채널 재고 정합성과 확장성 문제를 해결하기 위해 인벤토리 데이터 파이프라인을 이벤트 기반으로 재설계했습니다. Spring Batch, Kafka Fan-Out, Push/Pull 분리로 리드타임과 부하를 줄였습니다.

장보기 지원금 소멸 알림 배치에서 메시지 발송 대기 중 DB 커넥션을 오래 점유해 타임아웃이 발생했습니다. 이를 위해 리소스 사용 구간과 발송 대기 구간을 분리해 배치 안정성을 높였습니다.

Spring Data JDBC의 Composite ID 적용을 계기로 Spring Boot 4와 Spring Batch 6 업그레이드를 진행했습니다. 복합키 매핑, 배치 메타데이터 변경, Kotlin·Jackson·Gradle 호환성까지 함께 정리했습니다.

Spring Batch Partitioning, Cursor Reader, Bulk Operations로 수억 건 데이터 처리의 OOM 문제를 해결했습니다. 병렬 분할과 스트리밍 읽기, 일괄 쓰기 최적화로 성능과 안정성을 함께 높였습니다.

전국 1,300개 매장 전자라벨 배치를 위해 Partitioning으로 락 경합을 제거하고 처리 시간을 크게 줄였습니다. 또한 Aurora Serverless v2로 트래픽에 맞게 자동 확장해 성능과 비용을 함께 개선했습니다.
Jenkins 기반 스케줄 운영의 한계를 해결하기 위해 Temporal을 도입했습니다. 자동 재시도와 실행 이력 가시성으로 출고지시와 주문수집을 더 안정적으로 자동화했습니다.
정산 도메인의 특성에 맞춰 이벤트 처리와 배치 처리를 분리한 하이브리드 구조를 설명했습니다. Kafka, Spring Batch, Argo Workflow로 실패와 재처리를 전제로 한 정산 시스템을 구현했습니다.
정산을 사람의 기억이 아닌 시스템의 책임으로 옮기기 위한 MASS 설계 원칙을 다뤘습니다. 멱등성, 결정적 계산, 고정 반올림으로 재처리와 재계산에도 동일한 결과를 보장했습니다.

20년 레거시 정산 시스템을 분할정복과 데이터 모델 개선으로 개편했습니다. 대규모 배치는 테스트 자동화, 카나리 투입, Jenkins 기반 운영으로 안정성과 성능을 함께 높였습니다.


정산시스템의 대용량 엑셀 출력에서 OOM과 재시도 폭주를 해결한 사례를 다뤘습니다. 날짜 단위 병렬 처리와 DB Cursor, S3 업로드로 메모리 부담 없이 비동기 다운로드 구조를 만들었습니다.


Airflow와 Databricks로 디자인허브 정산 파이프라인을 리팩토링한 과정을 정리했습니다. 운영 DB 부하를 줄이고 멱등성, 가시성, 협업 체계를 함께 개선했습니다.


Spring Batch 기반 동기 연동의 병목을 Kotlin Coroutine으로 개선한 사례를 소개했습니다. Kafka와 비동기 호출을 결합해 처리 시간과 리소스 효율을 함께 높였습니다.