| 항목 | 내용 |
|---|---|
| 기간 | 2025.08 ~ 2026.02 |
| 역할 | 설계 및 구축 주도 |
| 기술 스택 | Kotlin, Apache Flink, Kafka, MongoDB, Debezium CDC, Kubernetes, ArgoCD |
| 파이프라인 | MongoDB → Kafka → Hadoop |
다나와 플랫폼에서 MongoDB에 입력되는 상품 데이터는 색인(검색), 통계, 레거시 시스템 역마이그레이션 등 다양한 후처리 작업이 필요했습니다. 이 데이터를 Hadoop 기반 후처리 시스템으로 실시간 적재해야 했으나, 기존에는 이를 위한 파이프라인이 존재하지 않았습니다.
flowchart LR
A[상품 데이터 입력] --> B[MongoDB]
B --> C[???]
C --> D[Hadoop 후처리]
D --> E[색인/검색]
D --> F[통계]
D --> G[레거시 역마이그레이션]
초기에는 Flink SQL(Streampark)로 프로토타이핑을 진행했습니다.
| 비교 항목 | Flink SQL (Streampark) | Kotlin DataStream API |
|---|---|---|
| 개발 편의성 | 높음 (SQL 기반) | 보통 (코드 작성 필요) |
| Before/After Diff 처리 | 제한적 ❌ | 완전 제어 가능 ✅ |
| MongoDB CDC 지원 | Pipeline API 미지원 | Debezium 직접 활용 |
| 커스텀 로직 | 어려움 | 자유로움 |
핵심 요구사항인 Before/After Diff 처리가 Flink SQL로는 제한적이라는 문제를 식별하고 보고하여, Kotlin DataStream API 기반으로 전환하는 의사결정을 주도했습니다.
flowchart TD
A[MongoDB Change Stream] --> B[Debezium CDC]
B --> C[Flink DataStream<br>Kotlin 코드]
C --> D[Before/After Diff 처리]
D --> E[Kafka Producer]
E --> F[Kafka Topics]
F --> G[Hadoop 적재]
subgraph Kubernetes
H[Flink Operator] --> C
I[ArgoCD] --> H
end