Kafka + Debezium을 활용한 CDC 활용 패턴 :: 잡다한 프로그래밍
반응형

앞으로 CDC 패턴에 대해서 공부해 볼것이다.

CDC(Change Data Capture)란 무엇인가?

**CDC(Change Data Capture)**는 말 그대로

“데이터베이스에서 일어나는 변경(Insert / Update / Delete) 을 실시간으로 감지하여, 이를 다른 시스템으로 전달하는 기술”

즉, 기존의 DB가 ‘변했다’는 사실을 캡처(Capture) 해서 이를 이벤트(Event) 로 만들어 보내주는 구조입니다.

왜 CDC가 필요한가?

오늘날 기업 시스템은 단일 DB에 머무르지 않습니다.
서비스가 분리되고, 분석·알림·검색·캐시 등 다양한 하위 시스템이 함께 움직입니다.

그런데 만약 주문 데이터 하나가 생성될 때마다,

  • 검색엔진(Elasticsearch)에 반영해야 하고,
  • 캐시(Redis)를 갱신해야 하고,
  • 분석용 데이터 웨어하우스(BigQuery 등)에 전달해야 한다면?
  • 이를 매번 배치(batch) 로 돌린다면 지연(latency)이 발생하고 DB 부하가 커지고 실시간성이 확보되지 않습니다.

즉 CDC 하나의 데이터로 파생되는 수많은 데이터를 서비스마다 독립적으로 유연하게 처리할 수 있다는 장점이 있습니다.

 

예시 흐름

  1. DB에서 주문이 생성됨 (INSERT)
  2. CDC 시스템이 트랜잭션 로그에서 해당 변경사항을 캡처
  3. 이를 이벤트(Event) 로 Kafka에 발행
  4. 다른 시스템(Elasticsearch, Redis, 알림 시스템 등)이 이 이벤트를 구독(consume) 하여 데이터 반영

반응형

+ Recent posts