피드로 돌아가기
올리브영 테크블로그Backend
원문 읽기
옴니채널 재고 정합성 한계에 대응하는 인벤토리 데이터 파이프라인 구축기
EDA 전환으로 API 호출 90% 감소 및 기초재고 생성 시간 50% 단축
AI 요약
Context
단일 동기식 파이프라인 구조로 인한 데이터 적재 병목과 연쇄 지연 발생. 모든 서비스가 단일 API를 통해 Read 부하를 가중시키는 Pull 방식의 한계로 재고 정합성과 실시간성 저하 확인.
Technical Solution
- Spring Batch Partitioning 도입을 통한 매장 단위 병렬 처리로 기초재고 생성 리드타임 단축
- Amazon MWAA 기반의 워크플로 자동화로 기존 2만 라인의 레거시 프로시저 제거 및 스케줄링 안정화
- Kafka Fan-Out 구조 적용을 통한 데이터 모델별 컨슈머 그룹 분리로 적재 프로세스 간 결합도 해소
- 서비스 특성에 따른 Push(이벤트 구독)와 Pull(실시간 API) 데이터 전달 체계 이원화
- 최우선 적재 대상인 매장재고 외 나머지 모델을 비동기로 처리하여 트랜잭션 종료 시간 최소화
Impact
- 기초재고 생성 시간 50분에서 25분으로 50% 단축
- 자체 스토어 보유 서비스의 API 호출량 약 90% 감소
Key Takeaway
데이터의 정합성 요구 수준과 소비 패턴에 따라 전달 방식을 분리하는 전략적 설계가 시스템 전체의 Read 부하를 낮추고 확장성을 확보하는 핵심임.
실천 포인트
1. 단일 파이프라인 내 동기식 적재가 병목을 유발하는지 확인하고 Kafka Fan-Out 도입 검토
2. 주기적 Full Poll 방식의 API 호출을 Event-driven Push 방식으로 전환하여 네트워크 오버헤드 제거
3. 대규모 데이터 처리 시 비즈니스 도메인의 자연스러운 분할 단위(예: 매장, 지역)를 활용한 Partitioning 적용