![[Deep Dive] Oracle부터 MySQL까지, 실시간 CDC 아키텍처 끝판왕 Q&A](https://goulgoul.kr/wp-content/uploads/2026/04/temp_upload_image_19687.jpg)
“운영 DB에 빨대 꽂아도 돼요?”
거래소의 생명인 안정성을 지키면서 데이터를 1원 한 장 안 틀리고 실시간으로 털어오는 CDC(Change Data Capture)의 정수를 정리했습니다.
1. 기초편: CDC, 왜 쿼리(Select) 대신 로그를 털까? 👁️🔍
Q: 그냥 5분마다 SELECT로 긁어오면 안 됨?
A: 운영 DB 죽이려고 작정함? 💀 쿼리로 대량 긁는 순간 운영 DB CPU는 비명을 지르고 거래는 멈춤!! CDC는 DB가 몰래 남기는 ‘리두 로그(Redo Log)’만 훔쳐보는 거라 운영에 부하를 거의 안 주면서 Real-time 동기화가 가능함!! 🏎️💨
2. 오라클 편: ADG vs OGG, 당신의 선택은? 🏛️🏗️
Q: ADG(Active Data Guard)랑 OGG(GoldenGate)는 뭐가 다름?
A: ‘분신술’과 ‘전송기’의 차이임!! 👥📦
1. ADG (Physical): 블록(Block) 자체를 똑같이 복사함!! 완벽한 거울이라 안정성은 쩔지만, 타겟 DB가 소스랑 똑같은 버전이어야 함. (보수적 🛡️)
2. OGG (Logical): 로그를 해석해서 SQL로 다시 써줌!! 소스는 오라클인데 타겟은 MySQL이어도 됨. 특정 테이블만 골라 보낼 수도 있는 유연함의 끝판왕!! (하지만 비쌈 💸)
Q: ADG는 DR 전환(Failover)할 때 왜 시간이 걸림?
A: ‘쫄병(Standby)’이 ‘대장(Primary)’ 옷으로 갈아입는 시간이 필요함!! 밀린 로그 다 읽고(Apply Lag), DB를 쓰기 모드로 다시 열고 메모리를 데우는(Warm-up) 절차 때문에 수십 초의 딜레이가 생김!! 🐢🔄
3. 안정성 편: “운영 노드(Writer)는 건드리지 마!!” 🔒🛡️
Q: 거래소 DB인데 Writer 노드에 직접 CDC 꽂아도 됨?
A: DBA한테 뺨 맞을 소리임ㅋㅋ 💀🔨 오라클은 특히 로그 분석(LogMiner) 부하가 커서, 무조건 ADG(Standby) 노드의 로그를 털어오는 게 국룰임!! 운영 DB는 거래만 하고, 우리는 복제본 로그만 몰래 훔쳐오는 거임.
Q: 근데 MySQL은 왜 Writer에서 받아도 된다고 함?
A: MySQL Binlog는 태생이 가벼우면서 복제를 위해 단순하게 설계됨!! 오라클처럼 무겁게 분석 안 해도 “나 슬레이브야!” 하고 구라(?) 치면 로그를 가볍게 툭 던져줌. 하지만 거래소급 트래픽이라면 MySQL이라도 ‘CDC 전용 Replica’를 따로 파는 게 정석임!! 🛡️✨
4. 성능 편: 엑스스트림(XStream)과 라이선스의 함정 🚀🏗️
Q: XStream이라는 게 로그마이너(LogMiner)보다 훨씬 빠르다는데?
A: ㅇㅇ!! 오라클 엔진 내부에 아예 ‘데이터 전용 고속도로’를 뚫어놓은 API임. 지연 시간(Lag)이 거의 없어서 실시간 호가 데이터 처리할 때 개꿀임!! 🍯
Q: 그럼 무조건 XStream 쓰면 되겠네?
A: 오라클은 공짜가 없음!! 💀 XStream 쓰려면 OGG 라이선스 사야 함!! OGG를 안 써도 API를 쓰는 순간 “돈 내놔!” 하고 찾아오는 오라클의 상술… 예산 부족하면 얌전히 ADG + LogMiner로 가야 함ㅋㅋ 📉💸
5. 실전 편: CDC 운영의 ‘진짜 지옥’ 예시 💀🔥
Q: CDC 구축하면 이제 끝임?
A: 이제 시작임ㅋㅋ
1. Apply Lag: 트래픽 몰리면 로그 읽는 속도가 못 따라가서 데이터가 10분, 1시간씩 밀림. 📉
2. Schema Change: 운영 DB에서 ALTER TABLE 한 번 때리는 순간 CDC 커넥터 뻗어버림. 💀
3. LOB 데이터: 대용량 텍스트나 이미지는 로그 읽기가 지옥임. 성능 떡락의 주범!!
6. 결론: 데이터 엔지니어의 아키텍처 전략 👨💻💰
Q: 최적의 조합은 뭐라고 생각함?
A:
1. 안정성: ADG 노드 활용 (Writer 노드 철저 보호)
2. 효율성: Debezium + Kafka 조합으로 이기종 전송
3. 성능: 돈 많으면 XStream, 가성비는 LogMiner
결론: 운영팀과 싸우지 말고 ADG에서 로그 털어가는 걸로 합의 보셈!! 👻🔨
Written by. Junku Lee (with. Kkaeb 👻)
댓글 남기기