피드로 돌아가기
올리브영의 실시간 캠페인 타겟팅을 위한 CDC 전환기
올리브영 테크블로그올리브영 테크블로그
Backend

올리브영의 실시간 캠페인 타겟팅을 위한 CDC 전환기

올리브영이 ODI 배치 시스템(20분~1시간 주기)을 OGG + Kafka CDC 아키텍처로 전환해 이벤트 기반 실시간 데이터 동기화 구현

2025년 12월 29일9advanced

Context

올리브영 캠페인 시스템은 ODI(Oracle Data Integrator)를 통한 배치 방식으로 고객 데이터를 동기화했으나, 20분~1시간의 동기화 주기로 인해 실시간 고객 행동 반영이 불가능했습니다. 마케팅 수신 동의/철회나 쿠폰 발급 같은 변경이 즉각 반영되지 않아 타겟팅 누락(기회 손실) 또는 동의 철회자에게 알림 발송(고객 신뢰 저하) 등의 문제가 발생했습니다. 또한 특정 시간대 대규모 데이터 변경(쿠폰 대량 발급, 멤버십 승급) 시 소스 DB에 과도한 부하가 집중되고 연쇄적 싱크 지연이 발생했습니다.

Technical Solution

  • OGG(Oracle Golden Gate) 도입으로 CDC 기능 구현: Oracle DB의 트랜잭션 로그(Redo Log)에서 INSERT, UPDATE, DELETE 변경사항을 실시간 캡처하여 데이터 지연 시간 극소화
  • OGG 커넥터와 Campaign-Worker 하이브리드 아키텍처 구성: 1:1 단순 매핑 데이터는 OGG 커넥터가 자동 싱크, 다수 테이블 조인·변환이 필요한 복잡한 로직은 Campaign-Worker가 Kafka 메시지를 직접 소비하여 처리
  • 메시지 순서 불일치 해결을 위한 3단계 방어 메커니즘 구축: (1) Retry - 베이스 정보 미존재 시 최대 3회 즉시 재시도, (2) DLT(Dead Letter Topic) - 3회 실패 메시지를 별도 토픽으로 격리, (3) DLT 복구 배치 - 5분/1시간 주기로 실패 메시지 재처리하여 최종 정합성 보장
  • Kafka 기반 스트리밍 파이프라인 구축: JSON, Avro, Parquet 포맷 변환 및 Kafka Connect 프레임워크를 통한 안정적 데이터 전송
  • Datadog과 Slack을 통한 모니터링: 메시지 누락, 소비 이상 발생 시 즉시 탐지 가능하도록 구성

Impact

데이터 처리 속도가 20분~1시간 주기(배치)에서 이벤트 기반 준실시간으로 개선되었습니다. 마케팅 동의 반영이 즉각적으로 이루어지면서 실시간 타겟팅이 가능해졌습니다. 소스 DB 부하가 특정 시간대 집중 현상에서 트랜잭션 로그 기반으로 분산되어 최소화되었습니다.

Key Takeaway

데이터 웨어하우징용으로 최적화된 배치 도구(ODI)를 실시간 스트리밍이 필요한 도메인에 적용하면 근본적 한계에 직면하게 됩니다. CDC 기반 아키텍처 도입 시 원천 데이터의 1:1 단순 매핑은 커넥터에 위임하고, 비즈니스 로직이 복잡한 변환만 별도 워커로 처리하는 하이브리드 접근이 실시간성과 안정성을 동시에 확보하는 실질적 전략입니다.


실시간 고객 이벤트 기반 의사결정이 필요한 마케팅/캠페인 플랫폼을 운영할 때, ODI 같은 정기 배치 시스템을 OGG + Kafka CDC 아키텍처로 전환하면 데이터 지연을 분 단위에서 초 단위 이벤트로 단축할 수 있습니다. 특히 여러 테이블을 조인해야 하는 복잡한 변환이 있다면 OGG 커넥터(단순 1:1 매핑)와 Custom Worker(비즈니스 로직)를 분리하고, Retry + DLT + 복구 배치를 3단계로 적용해 메시지 순서 이슈로 인한 데이터 누락을 방지할 수 있습니다.

원문 읽기