피드로 돌아가기
올리브영 테크블로그Backend
원문 읽기
올영매장은 MSA 환경에서 흩어진 도메인 데이터를 어떻게 연동했을까?
올리브영이 MSA 환경에서 프로모션·픽업 데이터 연동 시 데이터 특성별로 Redis 캐시 및 Kafka 이벤트 하이브리드 전략을 선택해 API 호출 부하 최소화와 실시간성 확보
AI 요약
Context
MSA 환경에서 올영매장 서비스는 여러 스쿼드에서 관리하는 프로모션, 재고, 픽업 주문 등 다양한 도메인 데이터를 연동해야 했다. 매번 API를 호출하는 방식은 데이터 변경 빈도를 고려하지 않아 불필요한 서버 리소스 낭비를 초래했다.
Technical Solution
- 프로모션 데이터: Cache-Aside 패턴 적용 → 변경이 거의 없는(Low Change) 프로모션을 Redis에 캐싱하고 갱신이 필요할 때만 API 호출, 주기적 배치로 종료일 지난 데이터 자동 삭제
- 픽업 주문 데이터: Kafka + Redis 하이브리드 전략 → 주문 상태 변경 이벤트를 Kafka로 수신하되 식별자(회원번호, 주문번호)만 Redis에 저장, 해당 고객의 픽업 대시보드 접근 시에만 상세 데이터 API 호출
- 선택적 API 호출 최적화 → Redis 캐시에 해당 고객의 Key가 존재하는 경우에만 주문 API 호출, 불필요한 트래픽 차단
- 데이터 특성 분석 프레임워크 → 사용처(Use Case), 변경 특성(Characteristic), 라이프사이클(Lifecycle) 3가지 관점으로 연동 방식(캐시 vs 이벤트 vs API 직접 호출) 결정
Key Takeaway
MSA 환경에서 데이터 연동 방식은 특정 신기술이 아닌 데이터의 변경 빈도와 사용처를 꿰뚫어 보는 관점으로 결정되어야 하며, 데이터 소비자 스쿼드가 사용처·변경 빈도·라이프사이클을 가장 잘 이해하므로 연동 설계의 의사결정을 주도해야 한다.
실천 포인트
MSA 환경에서 다중 도메인 데이터를 연동하는 팀은 요청 시점과 빈도에 따라 Cache-Aside(저변화 데이터) 또는 Event Notification + 선택적 API 호출(고변화 데이터) 패턴을 적용하면, 데이터 제공 서버의 API 호출 부하를 줄이면서도 고객에게 실시간에 가까운 응답 속도와 데이터 정확성을 동시에 제공할 수 있다.