상위: Data Engineering
요약
배치 처리는 일정량의 데이터를 모아 한 번에 처리하는 방식으로 비용 효율적이며 대량 데이터 처리에 적합합니다(Airflow, Spark). 실시간 처리는 데이터 발생 즉시 처리하여 지연이 짧지만 비용이 높습니다(Kafka, Flink). 사용 사례와 요구사항에 따라 적절한 방식을 선택해야 합니다.
배치 처리 (Batch Processing)
- 일정량의 데이터를 모아서 한꺼번에 처리하는 방식
- 정해진 시간 (예: 매일 밤 12시) 또는 특정 이벤트 (예: 파일 업로드) 발생 시 실행
- 대량 데이터 처리에 적합
- 주로 ETL 파이프라인, 데이터 웨어하우스 적재 등에 활용
주요 활용 사례
- 데이터 웨어하우스 적재 (예: Redshift, Snowflake)
- 사용자 로그 분석 (예: 하루 단위 사용자 접속 로그 집계)
- 기계 학습 모델 학습용 데이터 준비
- 정기 리포트 생성
- 대용량 데이터 집계 및 변환

배치 처리 도구
- Apache Airflow - 배치 워크플로우 오케스트레이션
- Spark - 대규모 분산 배치 데이터 처리
- Apache Hadoop - 분산 파일 시스템 및 MapReduce
- dbt - 데이터 변환 도구
실시간 처리 (Real-time Processing)
- 데이터가 발생하는 즉시 실시간으로 처리하는 방식
- 지연 시간이 짧음
- 스트리밍 데이터 (예: 실시간 로그, IoT 센서 데이터)에 최적화
주요 활용 분야
- 실시간 모니터링
- 이상 탐지
- 실시간 추천 시스템
- 금융 사기 탐지
- IoT 센서 데이터 분석
주요 활용 사례
- 실시간 주식 거래 분석
- 금융 사기 탐지 시스템
- IoT 센서 데이터 실시간 분석
- 실시간 추천 시스템
- 실시간 대시보드 및 알림

실시간 처리 도구
- Apache Flink - 스트림 처리 프레임워크
- Apache Kafka - 실시간 데이터 스트리밍 플랫폼
- Apache Storm - 분산 실시간 계산 시스템
- Spark Streaming - Spark 기반 스트리밍
비교 표
| 항목 | 배치 처리 | 실시간 처리 |
|---|---|---|
| 데이터 처리 방식 | 일정량의 데이터를 모아서 한 번에 처리 | 데이터가 들어오는 즉시 처리 |
| 처리 속도 | 느림 (분~시간 단위) | 빠름 (밀리초~초 단위) |
| 적용 사례 | 데이터 웨어하우스, 머신러닝 학습 데이터 준비 | 실시간 이상치 탐지, 실시간 추천 시스템, IoT 분석 |
| 리소스 사용 | 주어진 시간에만 리소스 사용 | 지속적인 리소스 사용 |
| 비용 | 상대적으로 저렴 (일정한 리소스 사용) | 고비용 |
| 복잡도 | 상대적으로 단순 | 복잡 (상태 관리, 윈도우 처리 등) |
| 정확성 | 높음 (전체 데이터 기반) | 근사치 가능 (샘플링, 윈도우) |
| 사례 | 매일 오후 20시 로그 데이터 집계 | 실시간 주식 거래 분석 |
하이브리드 아키텍처
배치와 실시간을 결합하는 Lambda·Kappa 패턴은 Lambda vs Kappa Architecture 참고.
선택 가이드
배치 처리가 적합한 경우
- 대량의 역사적 데이터 처리
- 복잡한 집계 및 분석
- 비용 최적화가 중요한 경우
- 처리 지연이 허용되는 경우 (시간~일 단위)
실시간 처리가 적합한 경우
- 즉각적인 응답이 필요한 경우
- 이벤트 기반 처리
- 모니터링 및 알림
- 지연 시간이 중요한 경우 (초~분 단위)
관련 문서
- Apache Airflow - 배치 워크플로우 오케스트레이션
- Airflow & Spark - Airflow와 Spark를 활용한 배치 처리
- Spark - 대규모 배치 데이터 처리
- Flink - 실시간 스트림 처리
- Data Engineering - 데이터 엔지니어링 허브