DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 올리브영
  • Related reads#MSA
#Backend

올영매장은 MSA 환경에서 흩어진 도메인 데이터를 어떻게 연동했을까?

올영매장은 MSA 환경에서 흩어진 도메인 데이터를 어떻게 연동했을까?
01

Summary

무작정 API 호출은 그만! 올리브영이 흩어진 MSA 데이터를 엮어내는 영리한 전략

Redis 캐싱부터 Kafka 이벤트 하이브리드까지, 데이터 성격에 맞춘 최적의 연동 아키텍처 설계기

올리브영의 O2O 핵심 서비스인 '올영매장'이 분산된 MSA 환경에서 데이터 정합성과 성능을 모두 잡은 과정을 소개한다. 데이터의 변경 주기와 생명 주기를 분석하여 캐시와 이벤트 기반 아키텍처를 적재적소에 배치한 실무 인사이트를 제공한다.

  • 01변경 빈도가 낮은 프로모션 데이터에는 Cache-Aside 패턴으로 서버 부하 최소화
  • 02실시간 픽업 상태 업데이트를 위해 Kafka Event Notification 패턴 채택
  • 03Redis 키 필터링 기술로 대규모 트래픽 속에서 무거운 API 호출을 지능적으로 제어
  • 04데이터 소비자가 직접 연동 설계를 주도하여 비즈니스 효율성을 극대화한 협업 모델
  • 05Kafka 메시지 유실 및 중복 문제를 고려한 운영 안정성 확보 전략

+RECOMMENDATION

MSA 구조에서 API 간 의존성으로 인해 성능 저하를 겪고 있거나, 대규모 트래픽 환경에서 실시간 데이터 동기화가 필요한 백엔드 엔지니어에게 강력히 추천한다.

The Problem

올리브영의 MSA 환경에서 매장, 프로모션, 주문 등 서로 다른 스쿼드가 관리하는 도메인 데이터를 통합하여 고객에게 제공해야 하는 과제가 있었다. 단순 API 호출 방식은 데이터 변경 빈도나 사용처를 고려하지 않을 경우 서버 리소스 낭비와 응답 지연을 초래할 위험이 존재했다.

The Solution

데이터 특성에 따라 두 가지 연동 전략을 수립했다. 변경이 적은 프로모션 데이터에는 Redis 기반의 Cache-Aside 패턴을 적용하여 API 부하를 줄였으며, 실시간성이 중요한 픽업 주문 데이터에는 Kafka Event Notification과 Redis 키 필터링을 결합하여 필요한 경우에만 API를 호출하는 하이브리드 방식을 도입했다.

The Result

데이터 제공 서버의 부담을 최소화하면서도 트래픽 집중 시 안정적인 성능을 확보했다. 특히 픽업 주문 연동의 경우 Kafka와 Redis를 활용해 불필요한 API 호출을 차단하고, 주문 상태가 변경된 고객에게만 최신 데이터를 실시간으로 제공할 수 있게 되었다.

Trade-off

본문에 구체적인 수치는 언급되지 않았으나, Kafka 이벤트 수신과 Redis 필터링이 결합된 하이브리드 구조를 도입함으로써 단순 API 호출 대비 시스템 구성 요소 간의 복잡도가 증가하고 운영 관점에서의 모니터링 포인트가 늘어났을 것으로 판단된다.

03

Key Concepts

Concept · 01

Cache-Aside 패턴

애플리케이션이 캐시를 우선 조회하고, 데이터가 없을 때만 원본 저장소에서 데이터를 가져와 다시 캐싱하는 전략이다.

  • 변경이 적은 매장별 프로모션 데이터를 Redis에 보관하여 응답 속도 향상
  • 주기적인 배치를 통해 만료된 데이터를 삭제함으로써 데이터 정확성 유지
Concept · 02

Event Notification

상태 변경 발생 시 전체 데이터가 아닌 최소한의 정보(식별자 등)만 이벤트로 발행하여 소비자에게 알리는 방식이다.

  • Kafka를 통해 주문 상태 변경 알림만 경량 메시지로 수신하여 통신 부하 경감
  • 상태 변경을 실시간으로 감지하여 후속 API 호출의 트리거로 활용
Concept · 03

Redis Key Filtering

특정 이벤트가 발생한 대상의 키만 Redis에 저장하고, 해당 키가 존재하는 요청에 대해서만 선택적으로 로직을 수행하는 필터링 기법이다.

  • 픽업 대시보드 접근 시 Redis에 주문 상태 변경 키가 있는 고객만 선별
  • 필터링을 통과한 요청에 대해서만 실제 주문 API를 호출하여 데이터 제공 서버 부하 절감
Continue reading · same source

올리브영More from 올리브영

View all posts from 올리브영
  • 옴니채널 재고 정합성 한계에 대응하는 인벤토리 데이터 파이프라인 구축기

    KafkaSpring BatchEDA
    1주 전
  • 에러로그 하나에 깨던 새벽에서 벗어나기까지 — 상품 모니터링 진화기

    DatadogCDCAutomation
    1주 전
  • 150개국 K-뷰티 플랫폼 뒤의 팀, 올리브영 글로벌엔지니어링센터의 첫 번째 워크숍 이야기

    GenAIVibe CodingVertex AI
    2개월 전
  • 45분 배치에서 준실시간으로! 다수 도메인 데이터를 Kafka로 통합한 전환기

    KafkaEvent-Driven ArchitectureRedis Pub/Sub
    2개월 전
  • AI와 협업하는 새로운 개발 프로세스, 올리브영은 어떻게 시작했을까 (feat. AI-DLC)

    AI-DLCSDLCAWS
    2개월 전

Related reads#MSA

Explore #MSA
Flex

[코드가 환경을 모르는 구조 5/7] Rewrite Host — 공간 축을 교체한다

#MSA2개월 전
SSG

“왜 노출이 안 될까?”를 한 번에 추적하는 방법

#MSA3개월 전
여기어때·BFF

화면 단위 복잡성을 흡수하다: 여기어때 BFF의 기록

#MSA4개월 전
올리브영·Spring

Spring 트랜잭션 동기화로 레거시 알림톡 발송 시스템 한계 넘어서기

#MSA4개월 전

Source

올리브영
올리브영
Engineering Blog

Published · March 18, 2026

Topics

MSARedisKafkaCache-AsideEvent-Driven데이터 통합아키텍처