데이터 처리 방식에는 배치 처리(Batch Processing)와 스트리밍 처리(Streaming Processing)가 있습니다. 각각의 차이점을 정리하고, 언제 어떤 방식을 선택해야 하는지 알아보겠습니다.
비교 항목 | 배치 처리 (Batch Processing) | 스트리밍 처리 (Streaming Processing) |
---|---|---|
데이터 처리 방식 | 일정 주기로 데이터 수집 & 일괄 처리 | 실시간으로 연속적인 데이터 처리 |
지연 시간 | 수 분 ~ 수 시간 | 수 밀리초 ~ 수 초 |
데이터 소스 | 데이터베이스, 로그 파일, API 등 | IoT 센서, 실시간 트래픽, 메시지 큐 (Kafka, Pub/Sub) |
운영 비용 | 상대적으로 낮음 | 상대적으로 높음 |
시스템 복잡도 | 비교적 단순 (스케줄링 & 실행) | 높은 복잡도 (연속적 처리 & 장애 대응 필요) |
유지보수 | 쉬움 (운영 부담 적음) | 어려움 (고가용성 & 장애 복구 고려) |
대표 기술 | Apache Airflow, Apache Spark (Batch), BigQuery Scheduled Queries | Kafka, Apache Flink, Spark Streaming, Google Pub/Sub |
💡 배치가 더 적합한 이유 → 비용 절감 & 유지보수 용이
✅ BigQuery 예약된 쿼리 → 매일 자정 데이터 분석 실행
✅ Airflow DAG (ETL 파이프라인) → 데이터 수집 & 정제 후 분석 시스템 적재
✅ 정산 시스템 → 하루 한 번 거래 내역을 정리하여 결산
💡 스트리밍은 비용이 높고 운영이 어려워, 특정 상황에서만 필요
✅ Kafka → 실시간 데이터 스트림 처리
✅ Flink / Spark Streaming → 데이터 변환 및 머신러닝 피드백 루프 구축
✅ Google Pub/Sub → IoT 기기에서 실시간 데이터 수집
1️⃣ 비용 절감 → 스트리밍은 24/7 실행되며 지속적인 리소스 사용 → 비용이 매우 높음
2️⃣ 운영 부담이 적음 → Kafka, Flink 같은 스트리밍 시스템은 운영 및 장애 대응이 어렵고 복잡
3️⃣ 실시간 처리가 불필요한 경우가 많음 → 대부분의 데이터 분석, 정산 작업은 하루 단위로 충분
4️⃣ 혼합 모델(Lambda Architecture)도 비용 문제로 잘 쓰이지 않음
구분 | 배치 (Batch Processing) | 스트리밍 (Streaming Processing) |
---|---|---|
데이터 처리 흐름 | 일정 주기마다 실행 (동기적) | 데이터가 들어오는 즉시 실행 (비동기적) |
작업 방식 | 순차 실행 (한 번에 처리) | 개별 이벤트를 독립적으로 처리 |
결과 반환 | 작업 완료 후 한 번에 반환 | 이벤트 단위로 즉시 반환 |
운영 방식 | 특정 시간마다 실행 (스케줄링) | 지속적으로 실행 (24/7) |
✅ 배치는 동기적인 흐름을 따르며, 전체 데이터를 모아 한 번에 처리
✅ 스트리밍은 비동기적으로 작동하며, 개별 이벤트가 즉시 처리됨
💡 즉, 배치는 "모아서 한 번에 실행", 스트리밍은 "들어오는 대로 개별 실행"하는 개념
💡 결론
✅ 배치 추천
일반적인 데이터 분석, 정산, ETL 파이프라인
⚠️ 스트리밍 추천
금융, IoT, 실시간 트랜잭션 & 이벤트 처리
💰 비용 고려
스트리밍은 운영 부담 & 비용이 크므로, 필요한 경우에만 사용