✎ 2025년

CDC(Change Data Capture)

위지원 2025. 4. 5. 09:16

CDC(Change Data Capture)란 ?

데이터베이스에서 변경 데이터 캡처(change data capture, CDC)는 변경된 데이터를 사용하여 동작을 취할 수 있도록 데이터를 결정하고 추적하기 위해 사용되는 여러 소프트웨어 디자인 패턴들의 모임이다. - WIKI
 
인터넷에 검색해보니 CDC 아키는 설계하기 나름인 것 같다.
다만 Source DB가 변경되는 것을 추적하고, 변경이 일어날 시(INSERT, DELETE 등) Target DB에 이를 반영하는 것이 주 목적이다.

 
CDC 종류는 아래와 같다.

  • 로그 기반 CDC: 데이터베이스의 트랜잭션 로그를 활용
  • 쿼리 기반 CDC: 소스 데이터베이스에 쿼리를 날림
  • 트리거 기반 CDC: 어플리케이션 소스가 CDC를 트리거링
  • 타임스탬프 기반 CDC: 데이터베이스의 타임스탬프를 활용
  • 테이블 차이 기반 CDC: 소스와 타겟 테이블을 비교
  • Polling 기반: 주기적으로 데이터베이스를 조회하여 변경사항을 찾음

CDC는 왜 생겨났을까?

결론부터 말하자면 데이터 처리 효율성 증대와 실시간 분석, 시스템 간 데이터 동기화의 원할한 진행을 위해 생겨났다. GPT의 답변은 아래와 같다. 큰 틀로 보면 많아진 데이터양과 고도화된 기술로 시스템과 애플리케이션 간 상호작용 하는 경우가 많이 생겨나서 생겨난 것으로 볼 수 있다. 

더보기

 

  • 데이터 동기화 필요성: 다양한 시스템이나 애플리케이션 간에 데이터 동기화가 필요해졌습니다. 예를 들어, 데이터 웨어하우스와 운영 데이터베이스가 서로 동기화되어야 할 때, CDC는 변경된 데이터만 캡처하여 시스템 간 효율적으로 동기화할 수 있도록 도와줍니다.
  • 성능 향상: 기존에는 데이터베이스 전체를 주기적으로 복사하거나 동기화하는 방식이었으나, 데이터가 매우 많아지면서 전체 데이터를 매번 처리하는 것은 성능에 큰 부담을 주었습니다. CDC는 변경된 데이터만 처리하여 성능을 크게 향상시킬 수 있습니다.
  • 실시간 데이터 처리 및 분석: 실시간 데이터 분석이 중요해지면서, 변경된 데이터만을 실시간으로 캡처해 분석 시스템에 반영할 수 있는 필요성이 커졌습니다. CDC는 실시간 또는 거의 실시간으로 데이터 변화를 추적하여 분석 시스템에 바로 반영할 수 있게 해줍니다.
  • 데이터 복제 및 백업: 데이터를 백업하거나 복제할 때, 전체 데이터를 매번 처리하는 것보다는 변경된 데이터만을 추출하는 것이 더 효율적입니다. CDC는 이를 가능하게 하여, 데이터를 더 빠르고 효과적으로 관리할 수 있게 해줍니다.
  • 비즈니스 요구 사항: 기업들이 다양한 애플리케이션과 시스템을 운영하면서 데이터의 변경 사항을 정확히 추적하고 관리할 필요성이 증가했습니다. CDC는 이를 통해 비즈니스 의사결정을 위한 최신 데이터를 지속적으로 제공할 수 있게 도와줍니다.

 

 

CDC를 사용할 때 주의해야할 점은 무엇일까?

 
1. 실시간 처리에 따른 성능
CDC는 변경 사항을 실시간으로 추적하기 때문에 너무 많은 데이터를 처리하게 되면 성능에 영향을 주게 된다. 또한 CDC 프로세스 자체가 서버 자원을 사용하는 것이므로 적절한 자원 배분과 최적화가 필요하다.
 
2. 중복데이터와 일관성
데이터를 실시간으로 동기화 할 때 ,자칫 중복이 발생할 수 있으므로 데이터 중복과 정합성 유지가 중요하다. CDC는 트랜잭션 로그를 캡쳐하기 때문에 트랜잭션의 일관성 또한 중요하다. 
 
3. 장애 복구
실시간으로 데이터 처리 중 장애가 발생하였을 때 중단된 시점에서 처리를 재시작 할 수 있는 기능이 필요하다.
 
4. 보안
민감한 데이터를 어떻게 전송할지 고려해야한다. (암호화 등)
 
5. 변환 및 품질 
실시간 데이터 처리 시 일부 데이터의 변환 프로세스에 의해 성능 저하가 발생할 수 있으며, 잘못된 형식의 데이터의 발생으로 품질 저하가 일어나지 않도록 해야한다. 
 
6. 확장성
데이터의 양에 따라 CDC 시스템 또한 적절하게 확장이 가능토록 설계해야 한다.
 

OGG(Oracle Golden Gate)

많은 CDC 툴이 있을 것이다. 회사에서 사용하는 것이 OGG라 하여 그 중에 OGG를 알아보려고 한다. OGG(Oracle Golden Gate)는 오라클에서 만든 CDC 솔루션이다.
 
아키텍처는 다음과 같다. 
 

https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm

 
 

왜 골든 게이트일까?

GPT에 의하면 아래와 같다. 두 시스템 간 연결을 하는 역할을 지녔다는 것에 어원을 둔 것 같다. 
Oracle GoldenGate라는 이름에서 "GoldenGate"는 의미가 있는 선택입니다. 이 이름은 **"Golden Gate Bridge"**에서 유래했을 가능성이 큽니다. 골든게이트 브리지는 미국 샌프란시스코에 있는 유명한 다리로, 대륙을 연결하는 중요한 교차로이자 상징적인 구조물로 잘 알려져 있습니다.
 
앞으로 실제 OGG를 사용하게 되면 내용을 추가해야겠다 ㅎ.ㅎ
 
REFERENCES
https://www.genspark.ai/spark/cdc-change-data-capture-%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%97%AD%EC%82%AC/3cd52a90-b2e7-4d50-b4c1-ba7189cec207
https://digitalbourgeois.tistory.com/512