이 글은 Data Engineering Zoomcamp의 Module 7: Streaming 를 바탕으로
Streaming 데이터 처리의 개념과 Kafka, Flink 기반 데이터 파이프라인 구조를 정리한 글입니다.
목차
- Streaming Data Processing이란 무엇인가
- Streaming 아키텍처의 기본 구조
- Kafka (Message Broker)의 역할
- Kafka를 대신하는 Redpanda
- Stream Processing Framework: Apache Flink
- Flink의 핵심 개념
- Streaming vs Batch Processing
- 실제 데이터 엔지니어링 아키텍처
- 정리
- 참고 자료 / 출처

1. Streaming Data Processing이란 무엇인가
데이터 엔지니어링에서 데이터 처리는 크게 두 가지 방식으로 나뉩니다.
- Batch Processing
- Streaming Processing
Batch Processing
Batch Processing은 일정 시간 동안 데이터를 모은 뒤 한 번에 처리하는 방식입니다.
- 하루 단위 데이터 집계
- 매 시간 로그 분석
- 데이터 웨어하우스 적재
일반적인 Batch 파이프라인
Raw Data → Batch Processing → Data Warehouse
특징
- 처리 지연이 있음
- 구현이 비교적 단순
- 대부분의 데이터 분석 시스템에서 사용
Streaming Processing
Streaming Processing은 데이터가 발생하는 즉시 처리하는 방식입니다.
- 실시간 사용자 행동 분석
- 이상 거래 탐지 (Fraud Detection)
- 실시간 추천 시스템
Streaming 데이터 흐름
Event → Streaming Pipeline → Real-time Output
특징
- 낮은 지연(latency)
- 지속적으로 실행되는 파이프라인
- 상태 관리(State management) 필요
2. Streaming 아키텍처의 기본 구조
treaming 시스템은 일반적으로 다음과 같은 구조로 구성됩니다.
Producer → Message Broker → Stream Processor → Sink
| 구성 요소 | 역할 |
| Producer | 이벤트 생성 |
| Message Broker | 이벤트 저장 및 전달 |
| Stream Processor | 실시간 데이터 처리 |
| Sink | 결과 저장 |
Application Event
↓
Kafka
↓
Flink
↓
Database / Data Lake
Streaming 시스템의 핵심은 이벤트(Event) 입니다.
- 사용자가 버튼 클릭
- 결제 발생
- 로그 생성
과 같은 이벤트가 발생할 때마다 메시지 브로커로 전달됩니다.
3. Kafka (Message Broker)의 역할
Streaming 아키텍처에서 가장 중요한 구성 요소 중 하나가 Message Broker입니다.
대표적인 Message Broker가 Apache Kafka입니다.
Kafka의 기본 구조
Producer → Topic → Consumer
Producer
Producer는 이벤트 데이터를 Kafka로 보내는 역할을 합니다.
- 웹 애플리케이션
- IoT 센서
- 로그 시스템
Topic
Topic은 Kafka에서 데이터를 저장하는 단위입니다.
데이터베이스의 테이블과 유사한 개념입니다.
- topic: rides
Producer는 이벤트를 topic에 기록합니다.
Consumer
Consumer는 Kafka에서 데이터를 읽는 애플리케이션입니다.
- Stream processing 시스템
- ETL 파이프라인
- 데이터 분석 시스템
Offset
Kafka는 데이터를 offset 기반으로 관리합니다.
offset 0
offset 1
offset 2
offset 3
Consumer는 자신이 어디까지 읽었는지를 offset으로 기억합니다.
4. Kafka를 대신하는 Redpanda
실습에서는 Kafka 대신 Redpanda를 사용합니다.
Redpanda는 Kafka와 동일한 프로토콜을 사용하는 Kafka-compatible broker로 Kafka 클라이언트 라이브러리를 그대로 사용할 수 있습니다.
Redpanda를 사용하는 이유
| 특징 | 설명 |
| No JVM | Java 기반 Kafka보다 가벼움 |
| No ZooKeeper | 별도 클러스터 필요 없음 |
| Single binary | 설치와 실행이 간단 |
Kafka는 일반적으로 다음 구조가 필요합니다.
Kafka Broker
ZooKeeper
반면 Redpanda는
Redpanda
하나의 서비스만으로 동작합니다.
5. Stream Processing Framework: Apache Flink
Kafka는 데이터를 저장하고 전달하는 역할을 합니다. 하지만 데이터 처리는 다른 시스템이 담당해야 합니다.
이 역할을 하는 것이 Stream Processing Framework입니다.
- Apache Flink (실습 사용)
- Spark Streaming
- Kafka Streams
Flink의 역할
Flink는 실시간 데이터 처리를 위한 분산 처리 엔진입니다.
Kafka → Flink → Database
Flink가 수행하는 작업
- 데이터 변환
- 실시간 집계
- 상태 기반 처리
- 이벤트 시간 처리
Kafka Consumer와 Flink의 차이
단순한 Kafka Consumer로도 데이터를 읽을 수 있지만, 다음 기능을 직접 구현해야 합니다.
- Window 처리
- 상태 관리
- 실패 복구
- 병렬 처리
Flink는 이러한 기능을 내장 기능으로 제공합니다.
6. Flink의 핵심 개념
6.1 Source와 Sink
Flink 데이터 파이프라인은 두 가지 개념으로 구성됩니다.
Source
데이터 입력
- Kafka
- Filesystem
- REST API
Sink
데이터 출력
- PostgreSQL
- Data Lake
- Kafka
파이프라인 구조
Source → Processing → Sink
6.2 Streaming Window
Streaming 데이터는 Batch처럼 단순한 GROUP BY를 수행하기 어렵기 때문에 Window 개념을 사용합니다.
Tumbling Window
겹치지 않는 고정 길이 Window
00:00 - 01:00
01:00 - 02:00
02:00 - 03:00
Sliding Window
겹치는 Window
00:00 - 01:00
00:30 - 01:30
01:00 - 02:00
주로 트래픽 피크 분석에 사용됩니다.
Session Window
사용자 활동 기반 Window
event → event → event → (inactive) → session 종료
사용자 행동 분석에 많이 사용됩니다.
6.3 Watermark와 Late Events
Streaming 시스템에서는 이벤트가 순서대로 도착하지 않을 수 있습니다.
event time: 10:00
arrival time: 10:05
이 문제를 해결하기 위해 Watermark를 사용합니다.
Watermark는 특정 시점 이전 이벤트는 거의 다 도착했을 것을 의미 합니다.
event_timestamp - 5 seconds
따라서, 5초 정도 늦은 이벤트는 허용합니다.
7. Streaming vs Batch Processing
Streaming은 강력하지만 항상 필요한 것은 아닙니다.
Streaming이 필요한 경우
- Fraud detection
- Real-time monitoring
- Dynamic pricing
Batch로 충분한 경우
- 데이터 분석
- BI 리포트
- 데이터 웨어하우스 적재
대부분의 데이터 파이프라인은 다음과 같은 Micro-batch 구조를 사용합니다.
Kafka → Spark → Data Warehouse
8. 실제 데이터 엔지니어링 아키텍처
현대 데이터 플랫폼에서는 다음과 같은 구조가 일반적입니다.
Application Event
↓
Kafka
↓
Flink / Spark Streaming
↓
Data Lake (Iceberg / Delta)
↓
Data Warehouse
| 시스템 | 역할 |
| Kafka | 이벤트 저장 |
| Flink | 실시간 데이터 처리 |
| Data Lake | 장기 데이터 저장 |
| Data Warehouse | 분석 |
9. 정리

Streaming 데이터 파이프라인은 다음과 같은 구조로 동작합니다.
Producer
↓
Message Broker (Kafka)
↓
Stream Processing (Flink)
↓
Data Storage
- Event 기반 데이터 처리
- Kafka 기반 메시지 스트리밍
- Flink 기반 실시간 처리
- Window와 Watermark를 이용한 이벤트 시간 처리
Streaming 시스템은 실시간 데이터 처리가 필요한 상황에서 강력한 도구이지만,
대부분의 데이터 파이프라인에서는 Batch 또는 Micro-batch 방식이 더 일반적입니다.
10. 참고자료 / 출처
- Streaming Video: https://www.youtube.com/watch?v=P2loELMUUeI
- Data Engineering Zoomcamp Repo: https://github.com/DataTalksClub/data-engineering-zoomcamp
- Redpanda Docs : https://docs.redpanda.com
- Apache Flink Docs : https://flink.apache.org/docs/
'대외활동 > DateEngineering Zoom Camp' 카테고리의 다른 글
| [DE-Zoomcamp] 7-2. Kafka → Flink → PostgreSQL Streaming Pipeline 실습 (1) | 2026.03.07 |
|---|---|
| [DE-Zoomcamp] 6-2. Apache Spark 구조와 동작 원리 (0) | 2026.03.01 |
| [DE-Zoomcamp] 6-1. Batch Processing 소개 (0) | 2026.03.01 |
| [DE-Zoomcamp] 5. Data Platforms : Bruin 기반 NYC Taxi ELT 파이프라인 구축 (0) | 2026.02.22 |
| [DE-Zoomcamp] 4. Analytics Engineering (dbt): Analytics Engineering 개념과 설계 흐름 (0) | 2026.02.16 |