Spring Batch와 Kafka Fan-out으로 완성한 초고속 옴니채널 인벤토리 파이프라인 구축기
대한민국 대표 옴니채널 올리브영이 대규모 트래픽 속에서도 재고 정합성을 지키기 위해 수행한 아키텍처 개편 과정을 담고 있습니다. 레거시 프로시저와 동기식 파이프라인의 한계를 극복하고, Spring Batch Partitioning과 이벤트 기반 아키텍처(EDA)를 통해 데이터 처리 속도와 시스템 안정성을 동시에 잡은 기술적 여정을 소개합니다.
대규모 데이터의 실시간 정합성이 중요한 커머스 엔지니어나, 레거시 일괄 처리 시스템을 modern-batch 환경으로 마이그레이션하려는 백엔드 개발자에게 적극 추천합니다.
올리브영의 기존 인벤토리 시스템은 트래픽 증가에 따라 기초재고 생성 리드타임이 늘어나고, 단일 파이프라인 내 동기식 적재 구조로 인해 특정 모델의 지연이 전체 시스템으로 전파되는 병목 현상을 겪었습니다. 또한, 모든 서비스가 단일 API를 통한 Pull 방식으로 재고를 조회하면서 불필요한 오버헤드와 Read 부하가 가중되었습니다.
기초재고 생성을 Spring Batch Partitioning을 통해 병렬화하고 Amazon MWAA로 워크플로를 자동화했습니다. 또한, 단일 파이프라인 구조에서 탈피하여 Kafka Fan-out 전략을 기반으로 한 이벤트 기반 아키텍처(EDA)로 전환하여 데이터 모델 간 결합도를 낮추고 처리 효율을 높였습니다.
기초재고 생성 시간이 평균 50분에서 25분으로 50% 단축되었으며, 약 2만 라인 규모의 레거시 프로시저를 전면 제거하여 유지보수성을 확보했습니다. 시스템 간 결합도가 낮아지면서 특정 데이터 모델의 지연이 전체 파이프라인에 영향을 주지 않도록 안정성이 강화되었습니다.
Trade-off
EDA 도입으로 시스템 간 정합성을 보장하기 위한 이벤트 추적 및 모니터링 복잡도가 증가했으며, 분산된 데이터 모델 간의 최종 일관성을 유지하기 위한 별도의 관리 비용이 발생할 수 있습니다. 또한, 기존 프로시저를 코드로 전환하는 과정에서 초기 개발 및 검증에 상당한 자원이 투입되었습니다.
대량의 데이터를 처리할 때 마스터 스텝이 데이터를 여러 개의 파티션으로 나누고, 여러 워커 스텝이 독립적으로 병렬 처리하는 방식입니다.
하나의 입력 이벤트를 여러 개의 독립적인 컨슈머 그룹이 각자의 목적에 맞게 병렬적으로 소비하여 처리하는 메시징 패턴입니다.
Managed Workflows for Apache Airflow의 약자로, 클라우드에서 워크플로 오케스트레이션을 쉽게 관리하고 확장할 수 있게 해주는 관리형 서비스입니다.