
백엔드
Headless CMS를 위한 변경 데이터 캡쳐(CDC) 기술 설계하기
두줄요약
헤드리스 CMS에서 다국어와 연관 관계를 고려한 CDC 설계 경험을 공유했습니다. 순서 보장과 트랜잭션 분리를 통해 대량 변경을 안정적으로 처리했습니다.
문제 상황
- 헤드리스 CMS LandPress Content에서 대량의 생성·수정·삭제 변경을 안정적으로 추적할 CDC 설계 필요
- 다국어 데이터와 연관 관계 데이터까지 포함하면 실제 변경 지점 식별이 복잡해지는 구조
구조와 흐름
- 변경 감지 후 예상 변경점 식별, 데이터 캡처, 전후 비교를 거쳐 실제 변경만 선별하는 흐름
- 변경 대상 데이터, 다른 언어 데이터, 연관 관계를 빼앗긴 데이터, 영향받을 가능성이 있는 데이터, 확정적으로 영향받는 데이터까지 고려
성능/운영 포인트
- 사용자 요청 트랜잭션 안에서는 중복 조회를 줄여 응답 지연 최소화
- 실제 변경 비교는 트랜잭션 밖에서 수행해 응답 대기 시간 완화
- Kafka 파티셔닝 병렬 처리에서 순서 보장 문제를 해결하기 위해 동일 아이템 단위의 순서 보장 구조로 변경
적용해볼 점
- 생성·수정은 변경 이후 값, 삭제는 변경 이전 값 기준으로 캡처하는 방식 적용
- 연관 관계 조회 시 최소 식별 정보만 활용해 불필요한 데이터 수집을 줄이는 방식 고려
- 검색 엔진 등 후속 파이프라인에서는 이벤트 순서 보장 여부를 우선 점검