본문 바로가기
대외활동/DateEngineering Zoom Camp

[DE-Zoomcamp] 7-1. Streaming Data Processing과 Kafka·Flink 개념 이해하기

by 드인 2026. 3. 7.

이 글은 Data Engineering Zoomcamp의 Module 7: Streaming 를 바탕으로
Streaming 데이터 처리의 개념과 Kafka, Flink 기반 데이터 파이프라인 구조를 정리한  글입니다.


목차

  1. Streaming Data Processing이란 무엇인가
  2. Streaming 아키텍처의 기본 구조
  3. Kafka (Message Broker)의 역할
  4. Kafka를 대신하는 Redpanda
  5. Stream Processing Framework: Apache Flink
  6. Flink의 핵심 개념
  7. Streaming vs Batch Processing
  8. 실제 데이터 엔지니어링 아키텍처
  9. 정리
  10. 참고 자료 / 출처


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. 참고자료 / 출처