상위: Data Engineering
요약
배치와 실시간 처리를 결합하는 두 가지 대표 스트리밍 아키텍처 패턴. Lambda는 배치·스피드 두 레이어를 병행하고, Kappa는 모든 것을 스트림 단일 경로로 처리한다.
Lambda Architecture
배치 레이어와 스피드(실시간) 레이어를 함께 두고 결과를 병합.
┌→ Batch Layer ([[Spark]]) → Batch View
Data Source →─┤
└→ Speed Layer ([[Flink]]) → Real-time View
↓
Serving Layer (두 뷰 병합 제공)
- 배치 레이어: 전체 데이터를 정확·완전하게 처리 (지연 있음)
- 스피드 레이어: 최신 데이터를 빠르게 처리 (근사치)
- 장점: 정확성 + 실시간성 동시 확보
- 단점: 두 개의 처리 시스템을 이중으로 유지해야 함 (로직 중복, 운영 복잡)
Kappa Architecture
스트림 처리 단일 파이프라인으로 통일. 재처리가 필요하면 스트림(로그)을 처음부터 재생(replay).
Data Source → Stream Processor ([[Flink]]) → View
- 모든 데이터를 스트림으로 처리 (배치도 "유한한 스트림"으로 취급)
- 장점: 단일 처리 경로 → 로직 일원화, 유지보수 간단
- 단점: 대규모 과거 데이터 재처리는 배치 대비 비효율적일 수 있음
선택 기준
- Lambda: 배치의 정확성이 반드시 필요하고, 실시간은 근사치로 충분할 때
- Kappa: 스트림 엔진 하나로 정확성까지 감당 가능하고, 이중 유지보수를 피하고 싶을 때 (Kafka + Flink 조합에서 흔함)