배치 처리 vs 스트리밍 처리: 차이점과 선택 기준

yeahcold·2025년 3월 20일
0

Data Engineering

목록 보기
6/20

데이터 처리 방식에는 배치 처리(Batch Processing)와 스트리밍 처리(Streaming Processing)가 있습니다. 각각의 차이점을 정리하고, 언제 어떤 방식을 선택해야 하는지 알아보겠습니다.


1️⃣ 배치 처리 vs 스트리밍 처리 비교

비교 항목배치 처리 (Batch Processing)스트리밍 처리 (Streaming Processing)
데이터 처리 방식일정 주기로 데이터 수집 & 일괄 처리실시간으로 연속적인 데이터 처리
지연 시간수 분 ~ 수 시간수 밀리초 ~ 수 초
데이터 소스데이터베이스, 로그 파일, API 등IoT 센서, 실시간 트래픽, 메시지 큐 (Kafka, Pub/Sub)
운영 비용상대적으로 낮음상대적으로 높음
시스템 복잡도비교적 단순 (스케줄링 & 실행)높은 복잡도 (연속적 처리 & 장애 대응 필요)
유지보수쉬움 (운영 부담 적음)어려움 (고가용성 & 장애 복구 고려)
대표 기술Apache Airflow, Apache Spark (Batch), BigQuery Scheduled QueriesKafka, Apache Flink, Spark Streaming, Google Pub/Sub

2️⃣ 배치가 유리한 상황 (대부분의 경우)

💡 배치가 더 적합한 이유 → 비용 절감 & 유지보수 용이

배치를 선택해야 하는 경우

  • 실시간 데이터 처리가 필요하지 않은 경우 → 대부분의 기업이 일 단위, 시간 단위의 데이터 분석을 원함 (예: 매출 정산, 주문 내역 분석)
  • 비용을 절감해야 하는 경우 → 배치는 특정 시간에만 실행되어 리소스 사용량을 최적화할 수 있음
  • 데이터 신뢰성이 중요한 경우 → 일정 시간 동안 데이터를 한 번에 정리 & 검증 후 처리하므로 데이터 무결성이 유지됨

배치 예시

BigQuery 예약된 쿼리 → 매일 자정 데이터 분석 실행
Airflow DAG (ETL 파이프라인) → 데이터 수집 & 정제 후 분석 시스템 적재
정산 시스템 → 하루 한 번 거래 내역을 정리하여 결산


3️⃣ 스트리밍이 유리한 상황 (제한된 사용 사례)

💡 스트리밍은 비용이 높고 운영이 어려워, 특정 상황에서만 필요

스트리밍을 선택해야 하는 경우

  • 실시간 이벤트 처리가 필수인 경우 → 금융 거래, 보안 감시 시스템, 실시간 추천 시스템
  • 데이터가 끊임없이 유입되는 경우 → IoT 센서, 실시간 트래픽 모니터링
  • 지연 시간이 중요한 경우 → 주식 거래 시스템, 실시간 광고 입찰

스트리밍 예시

Kafka → 실시간 데이터 스트림 처리
Flink / Spark Streaming → 데이터 변환 및 머신러닝 피드백 루프 구축
Google Pub/Sub → IoT 기기에서 실시간 데이터 수집


4️⃣ 현업에서는 90% 이상 배치를 선택하는 이유

1️⃣ 비용 절감 → 스트리밍은 24/7 실행되며 지속적인 리소스 사용 → 비용이 매우 높음
2️⃣ 운영 부담이 적음 → Kafka, Flink 같은 스트리밍 시스템은 운영 및 장애 대응이 어렵고 복잡
3️⃣ 실시간 처리가 불필요한 경우가 많음 → 대부분의 데이터 분석, 정산 작업은 하루 단위로 충분
4️⃣ 혼합 모델(Lambda Architecture)도 비용 문제로 잘 쓰이지 않음


5️⃣ 배치 vs 스트리밍: 동기 vs 비동기

구분배치 (Batch Processing)스트리밍 (Streaming Processing)
데이터 처리 흐름일정 주기마다 실행 (동기적)데이터가 들어오는 즉시 실행 (비동기적)
작업 방식순차 실행 (한 번에 처리)개별 이벤트를 독립적으로 처리
결과 반환작업 완료 후 한 번에 반환이벤트 단위로 즉시 반환
운영 방식특정 시간마다 실행 (스케줄링)지속적으로 실행 (24/7)

배치는 동기적인 흐름을 따르며, 전체 데이터를 모아 한 번에 처리
스트리밍은 비동기적으로 작동하며, 개별 이벤트가 즉시 처리됨

💡 즉, 배치는 "모아서 한 번에 실행", 스트리밍은 "들어오는 대로 개별 실행"하는 개념


6️⃣ 결론: 배치를 먼저 익히고, 스트리밍은 필요할 때만 고려하자

💡 결론

  • 배치를 먼저 고려하고, 실시간 처리가 꼭 필요한 경우에만 스트리밍을 도입하는 것이 가장 현실적인 선택

배치 추천
일반적인 데이터 분석, 정산, ETL 파이프라인

⚠️ 스트리밍 추천
금융, IoT, 실시간 트랜잭션 & 이벤트 처리

💰 비용 고려
스트리밍은 운영 부담 & 비용이 크므로, 필요한 경우에만 사용

profile
Software Engineer

0개의 댓글