핵심 요약
올리브영의 배송최적화 시스템은 전략 패턴과 컴포지트를 활용해 출고 센터 선정을 모듈화하고, DB 기반 룰 활성화로 유연성과 유지보수성을 크게 높였습니다.
구현 방법
- CenterSelectionStrategy와 DecisionStrategy를 분리하고, 다중 전략을 조합하는 CompositeCenterSelectionStrategy를 도입
- 후보군 추려내는 Selection과 최종 확정하는 Decision의 two-stage 흐름으로 조건들을 분리
- DB의 룰 활성화 상태를 필터링으로 반영하고, 비용이 큰 외부 API 호출을 최소화하도록 실행 순서를 최적화하며 조기 종료(shouldStop) 기능 도입
주요 결과
- 기존 코드 수정 없이 새로운 규칙 추가가 가능하도록 유지보수성과 확장성을 향상
- 운영 측면에서 DB 기반 룰 On/Off로 정책 변경을 빠르게 반영
- 외부 API 호출을 줄여 시스템 부하 및 응답성에 간접적으로 긍정적 영향 가능



