핵심 인사이트 (3줄 요약)
- 본질: CDC(Change Data Capture)는 데이터베이스의 변경 사항(Insert, Update, Delete)을 실시간으로 감지하여 다른 시스템(DW, NoSQL, Cache 등)으로 즉시 전달하는 기술이다.
- 가치: 운영 DB에 무거운 쿼리를 날리지 않고도 실시간 데이터 동기화를 달성하며, 원천 시스템의 부하를 최소화하면서 실시간 분석 환경을 구축한다.
- 판단 포인트: 주기적으로 긁어오는 Batch(배치) 방식보다 데이터 지연(Latency)이 거의 없어야 하는 미션 크리티컬한 동기화 작업에 필수적이다.
Ⅰ. 개요 및 필요성
과거에는 운영 DB의 데이터를 분석계(DW)로 옮길 때 매일 밤 한꺼번에 옮겼다. 하지만 경영진은 "지금 당장의 매출 추이를 보고 싶다"고 요구한다. 그렇다고 운영 DB에 수시로 조회를 날리면 실제 서비스 속도가 느려진다. CDC는 이 딜레마를 해결한다. 운영 DB가 일기장에 적는 내용(Transaction Log)을 옆에서 몰래 훔쳐보고(Capture), 그 내용만 다른 곳에 실시간으로 똑같이 적어주는 방식이다.
📢 섹션 요약 비유: CDC는 '그림자 필기사'다. 선생님(운영 DB)이 칠판에 글을 쓸 때마다 옆에서 실시간으로 똑같이 베껴 써서 다른 학생(분석 시스템)들에게 전해주는 역할을 한다.
Ⅱ. 아키텍처 및 핵심 원리
1. CDC 구현 방식
- Log-based CDC (가장 권장): DB의 '트랜잭션 로그(Redo Log, Binlog 등)'를 직접 읽는다. DB에 조회를 날리지 않으므로 성능 부하가 거의 없다.
- Query-based CDC: '최종 수정 시간' 컬럼 등을 조회하여 바뀐 데이터를 찾아낸다. 구현은 쉽지만 DB에 부하를 준다.
2. 동작 프로세스
- Capture: 소스 DB의 로그 파일에서 변경된 내역을 추출한다.
- Transform: 다른 DB 형식에 맞게 데이터를 변환한다.
- Apply: 대상 시스템(Target)에 변경 사항을 반영한다.
[ 운영 DB ] ──▶ [ Transaction Log ] ──(CDC Agent)──▶ [ Kafka / MQ ] ──▶ [ Target System ]
(Source) (DW / ES / Cache)
📢 섹션 요약 비유: CDC는 '복사기의 스캔 기능'과 같다. 원본 문서(데이터)를 건드리지 않고 빛(로그 분석)만 쏘아서 똑같은 복사본을 실시간으로 만들어낸다.
Ⅲ. 비교 및 연결
전통적 ETL vs CDC (실시간)
| 비교 항목 | 전통적 ETL (Batch) | CDC (Real-time) |
|---|---|---|
| 처리 시점 | 특정 시간 (주로 야간) | 데이터 변경 즉시 (실시간) |
| 데이터 양 | 대량의 전체 또는 변경분 | 변경된 한 건 한 건 (Event) |
| 시스템 부하 | 처리 시점에 급증 | 지속적이고 매우 낮음 |
| 데이터 지연 | 수 시간 ~ 1일 | 수 밀리초 ~ 수 초 |
| 적합 사례 | 정기 정산, 대규모 마이그레이션 | 실시간 검색 엔진 반영, 실시간 대시보드 |
📢 섹션 요약 비유: 전통적 ETL이 '이삿짐센터가 트럭으로 한꺼번에 짐을 옮기는 것'이라면, CDC는 '새 물건을 살 때마다 즉시 배달해주는 총알 배송'과 같다.
Ⅳ. 실무 적용 및 기술사 판단
기술사 핵심 포인트:
- Debezium: Kafka Connect 기반의 가장 유명한 오픈소스 CDC 도구로, 로그 기반 캡처의 표준임을 언급한다.
- Zero-Downtime Migration: 서비스 중단 없이 DB를 클라우드로 옮길 때, 기존 DB와 새 DB를 CDC로 묶어 데이터를 동기화한 후 '스위칭'하는 전략이 핵심이다.
- 순서 보장: 로그가 뒤섞이면 데이터 정합성이 깨지므로, 반드시 발생한 순서대로 반영(Ordering)하는 메커니즘이 포함되어야 한다.
📢 섹션 요약 비유: CDC는 시스템의 '투명한 거울'이다. 본체(운영 DB)의 움직임을 거울(타겟 시스템)이 찰나의 오차도 없이 그대로 따라 하게 만들기 때문이다.
Ⅴ. 기대효과 및 결론
CDC는 "데이터는 흐르는 것"이라는 실시간 스트리밍 아키텍처의 출발점이다. 운영과 분석의 물리적 분리를 유지하면서도 정보의 시차를 없애준다. 기술사 시험에서는 로그 기반 CDC의 기술적 우수성을 강조하고, 이를 Kafka와 같은 이벤트 버스와 결합하여 전사적인 데이터 허브를 구축하는 전략을 제시하는 것이 최신 트렌드에 부합한다.
📢 섹션 요약 비유: CDC는 IT 세상의 '실시간 통역관'이다. 한 나라(운영계)에서 선포된 법령(데이터 변경)을 다른 나라(분석계)가 즉시 알아들을 수 있게 실시간으로 전달하여 전 세계의 발을 맞추게 돕는다.
📌 관련 개념 맵
| 개념 | 연관 키워드 | 관계 |
|---|---|---|
| Transaction Log | Redo Log, Binlog | CDC가 정보를 훔쳐보는 원천 소스 |
| Debezium | 오픈소스, Kafka Connect | 실무에서 가장 많이 쓰이는 CDC 엔진 |
| Zero-Downtime | 무중단 전환, 가용성 | CDC 기술이 기여하는 가장 큰 운영적 이점 |
| Event-Driven | EDA, 상태 변화 | CDC가 생성한 변경 내역은 시스템의 중요한 이벤트가 됨 |
👶 어린이를 위한 3줄 비유 설명
- 선생님이 칠판에 글자를 쓰자마자 내 공책에도 똑같은 글자가 마술처럼 생겨나는 거예요.
- 선생님을 귀찮게 물어보지 않고, 선생님의 연필 움직임(로그)만 보고 따라 하니까 방해가 안 돼요.
- 덕분에 선생님이 수업을 마칠 때쯤이면 내 공책도 이미 완벽하게 정리가 끝나있답니다.