
Batch Processing은 데이터가 모두 준비된 시점에 한 번에 처리하는 방식이다. 일정 기간 동안 축적된 데이터를 기반으로 작업이 수행되며, 대표적인 사례로 하루 동안 저장된 판매 데이터를 자정에 요약하는 작업이 있다. 이 방식은 데이터가 완전하게 확보된 이후 처리되기 때문에 분석 결과가 생성되기까지의 지연 시간이 상대적으로 길다.
Stream Processing은 이벤트가 발생하는 즉시 처리하는 방식이다. 데이터가 시스템에 유입되는 순간 단위로 반응하며, 실시간 대시보드 업데이트나 이상 거래 탐지와 같은 작업에 적합하다. 처리 결과가 즉시 반영되므로 실시간성이 핵심 요구사항인 환경에서 활용된다.
| 항목 | Batch Processing | Stream Processing |
|---|---|---|
| 데이터 특성 | 유한하고 완전한 데이터셋 | 무한하고 연속적인 데이터 |
| 처리 시점 | 모든 데이터가 수집된 후 처리 | 데이터가 도착하는 즉시 처리 |
| 지연 시간 | 높음(분~수시간) | 낮음(밀리초~초) |
| 예시 | 일별 판매 리포트, ETL 작업 | 이상 거래 탐지, 실시간 추천 |
시간 처리 방식(Timing Semantics)
Batch Processing은 프로세스 시간(processing time)을 중심으로 처리한다. 반면 Stream Processing은 이벤트 시간(event time)과 도착 시간(ingestion time)을 기반으로 처리하며, 데이터의 실제 발생 시점을 반영하기 위한 시간 의미론이 사용된다.
내결함성(Fault Tolerance)
Batch Processing에서는 실패한 작업을 재시도하는 방식으로 오류를 복구한다.
Stream Processing에서는 체크포인트와 상태 복구 메커니즘을 통해 연속적이고 무한한 데이터 흐름 속에서도 일관된 상태를 유지해야 한다.