투케이2K

293. [IT 용어] CDC (Change Data Capture) 데이터베이스 변경 사항 실시간 감지 및 다른 시스템 전달 기술 설명 정리 본문

IT기술 & IT용어

293. [IT 용어] CDC (Change Data Capture) 데이터베이스 변경 사항 실시간 감지 및 다른 시스템 전달 기술 설명 정리

투케이2K 2026. 2. 1. 13:03
728x90

[타이틀]

주제 : [IT 용어]

제목 : [IT 용어] CDC (Change Data Capture) 데이터베이스 변경 사항 실시간 감지 및 다른 시스템 전달 기술 설명 정리

 

[설 명]

 

// --------------------------------------------------------------------------------------
[IT 정보 및 환경]
// --------------------------------------------------------------------------------------

구분 : IT 용어 설명


제목 : [IT 용어] CDC (Change Data Capture) 데이터베이스 변경 사항 실시간 감지 및 다른 시스템 전달 기술 설명 정리


기 술 : IT 용어 / CDC / Change Data Capture

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. CDC 는 데이터베이스에서 발생하는 변경사항 (Insert, Update, Delete) 을 실시간 또는 근실시간으로 감지하여 다른 시스템으로 전달하는 기술/패턴입니다

  >> DB 에서 무엇이 바뀌었는지 정확하게 추적하고, 그 변화만 다른 시스템으로 흘려보내는 방식입니다

  >> INSERT (새 레코드 생성) , UPDATE (레코드 값 수정) , DELETE (레코드 삭제) 이벤트에는 변경 이전(before) / 이후(after) 값 , 변경 시각(timestamp) , 트랜잭션 ID , 변경 사용자/서비스 정보가 포함 될 수 있습니다


2. ✅ CDC 가 필요한 이유

  >> Full Dump(전체 추출)의 비효율성 해결 : 변경된 데이터만 전송하여 효율을 극대화합니다

  >> 실시간 데이터 파이프라인 구현 : 실시간 대시보드 , 스트리밍 처리 , 이벤트 기반 아키텍처가 가능해집니다

  >> 운영 DB 부하 최소화 : 전체 스캔 없이 변경된 부분만 조회하므로 운영 DB 부담이 적습니다


3. ✅ CDC 구현 방식 4가지

  >> Log-based CDC (가장 강력하고 권장됨) : DB의 WAL/REDO/BIN 로그를 읽어 변경 데이터를 추출하는 방식

    - MySQL → binlog
    - PostgreSQL → WAL
    - Oracle → redo log
    - SQL Server → transaction log
    - 장점) 가장 높은 정확도
    - 장점) DB 성능에 영향 거의 없음
    - 장점) 실시간 처리
    - 장점) 삭제/업데이트 모두 완전 추적 가능
    - 단점) 로그 파싱 기술 필요
    - 단점) 권한 설정 복잡할 수 있음
    - 도구) Debezium
    - 도구) AWS DMS
    - 도구) Oracle GoldenGate
    - 도구) Striim

  >> Trigger-based CDC : DB에 트리거를 걸어 변경 시 이력을 별도 테이블에 저장

    - 장점) 거의 모든 DB에서 사용 가능
    - 장점) 구현이 직관적
    - 단점) 성능 오버헤드 발생
    - 단점) 운영 DB에 부하
    - 단점) 스키마 변경 시 트리거도 수정 필요

  >> Timestamp-based CDC : updated_at 같은 시간 컬럼을 기준으로 변경분 조회

    - 장점) 구현이 매우 쉬움
    - 장점) 간단한 배치 ETL에서 많이 사용
    - 단점) ‘정확한 변경 이력’이 아님
    - 단점) 삭제 이벤트 추적 불가
    - 단점) 동시성/정렬 문제 발생 가능

  >> Diff-based CDC : 정기적으로 이전 스냅샷과 비교하여 변경 사항 탐지

    - 장점) DB 기능 의존도 낮음
    - 단점) 성능 비용 큼
    - 단점) 데이터 세트가 클 경우 비효율적
    - 단점) DELETE 추적 어려움

4. CDC 가 흔히 사용되는 실무 시나리오

  >> 운영 DB → 데이터 웨어하우스 연동

    - 예: MySQL/PostgreSQL → BigQuery/Redshift/Snowflake
    - 변경된 데이터만 적재
    - 실시간 분석 가능
    - 운영 DB 부담 최소화

  >> 마이크로서비스 이벤트 발행

    - CDC 기반 이벤트 소싱(Event Sourcing)
    - DB → Kafka
    - 주문 생성 이벤트
    - 결제 성공 이벤트
    - 재고 감소 이벤트

  >> Redis·Elasticsearch 등 캐시/검색 싱크

    - DB에서 변경이 발생하면 Search 인덱스 또는 Cache를 자동 갱신

  >> 감사 로그(Audit Log) 생성
  
    - 누가 어떤 데이터를 어떻게 변경했는지 추적

  >> 데이터 동기화/이중화 (Replication)

    - 실시간 DB 복제
    - 장애 조치(Failover)
    - 이관(Migration)


5. ✅ CDC 구축 시 고려해야 할 문제 

  >> 순서 보장(Ordering) : 트랜잭션 순서대로 이벤트를 처리해야 데이터 불일치 방지

  >> 재처리(replay) : 중복 이벤트를 제거하거나 idempotent 처리가 필요

  >> 삭제(DELETE) 처리 : 삭제 이벤트를 어떻게 downstream에 반영할 것인가?

  >> 스키마 변경(DDL Change) : 컬럼 추가/삭제에 대한 대응 필수

  >> 대규모 트래픽 처리 : 테라바이트급 데이터 변경량 발생 시 성능 고려 필요

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[IT 용어] EOL (End of Life) 제품 및 버전의 수명 종료 설명 정리

https://kkh0977.tistory.com/8583

https://blog.naver.com/kkh0977/224154855186


[IT 용어] FYI 참고용 공유 설명 정리

https://kkh0977.tistory.com/8575

https://blog.naver.com/kkh0977/224150117529


[IT 용어] Draft ( 드래프트 ) 초안 및 임시 버전 설명 정리

https://kkh0977.tistory.com/8574

https://blog.naver.com/kkh0977/224149709329


[IT 용어] TBA (To Be Announced) 추후 공지 예정 설명 정리

https://kkh0977.tistory.com/8572

https://blog.naver.com/kkh0977/224149305785


[TBC (To Be Confirmed) 추후 확인 예정 설명 정리]

https://blog.naver.com/kkh0977/224149701209


[IT 용어] TBD (To Be Decided) 용어 설명

https://blog.naver.com/kkh0977/223389877406?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments