← 코스 목록

Courses

Apache Flink

0에서 시작해 실무 감각까지 — 진짜 스트림 처리 엔진 코스

5일 (하루 2~3시간 기준) · 5개 phase · 17개 스텝

0 / 17 완료

Prerequisites

연관 기술: kafka spark

시작하기 전에

아래 질문에 스스로 답해보세요 — 채점하지 않는 자가 진단용입니다. 이미 아는 내용이면 관련 스텝을 빠르게 넘어가도 좋습니다.

  1. 클러스터에서 잡을 여러 노드에 나눠 병렬로 처리한다고 할 때, 왜 하나의 큰 서버 대신 여러 대의 작은 서버로 나눠 처리하는지 이유를 설명할 수 있나요?

    분산 처리의 기본 동기(처리량 확장 + 내결함성)를 이미 아는지 확인 — 알면 Day 1의 아키텍처 설명을 빠르게 통과시킬 수 있다

  2. "배치 처리"와 "스트림(실시간) 처리"의 차이를 한 문장으로 설명한다면?

    이 코스 전체의 전제가 되는 배치 vs 스트리밍 구분을 이미 아는지 확인

  3. 센서가 오전 9시에 데이터를 만들었는데 네트워크 지연 때문에 서버에는 9시 5분에 도착했습니다. 이 데이터를 "9시 데이터"와 "9시 5분 데이터" 중 어느 쪽으로 취급해야 할까요? 왜 그렇게 생각하나요?

    이벤트 시간(event time) 개념의 직관을 이미 갖고 있는지 확인 — Day 2 후반부 속도를 좌우하는 핵심 질문

  4. Kafka를 써보셨거나 개념(토픽/파티션/컨슈머 그룹)을 알고 계신가요?

    Kafka Streams/Spark Structured Streaming과 비교하며 진행할지, 처음부터 설명할지 결정

  5. 스트리밍 잡이 처리 도중 서버 장애로 죽었다가 재시작됐습니다. 이때 "같은 데이터를 두 번 처리하는 것"을 막으려면 어떤 정보가 어딘가에 저장되어 있어야 할 것 같나요?

    장애복구/exactly-once에 대한 직관을 확인 — Day 3의 체크포인트 학습 속도에 반영

진행 순서

Day 1

기초 — Flink가 왜 존재하는가

마이크로배치와 진짜 스트림 처리의 차이, Flink의 기본 아키텍처(개인 PC 기준), Kafka Streams와의 포지셔닝 차이를 설명할 수 있다

0 / 3
  1. 1 마이크로배치 vs 진짜 스트림 처리 개념
  2. 2 Flink 아키텍처 — JobManager/TaskManager/Slot (개인 PC 기준) 개념
  3. 3 Kafka Streams와 Flink — 둘 다 레코드 단위인데 뭐가 다른가 개념
Day 2

핵심개념 A — 데이터 흐름을 다루는 법

DataStream API의 기본 변환, keyBy가 상태 관리와 어떻게 연결되는지, event time과 processing time의 차이를 설명할 수 있다

0 / 3
  1. 1 DataStream API 기본 변환 — map/filter 개념
  2. 2 keyBy — 논리적 파티셔닝과 상태의 연결 개념
  3. 3 Event Time vs Processing Time 개념
Day 3

핵심개념 B — 늦게 오는 데이터와 오래 유지되는 상태

watermark가 지연-정확도 트레이드오프를 어떻게 관리하는지, 윈도우가 언제 닫히는지, keyed state와 체크포인트가 각각 무엇을 보장하는지 설명할 수 있다

0 / 5
  1. 1 Watermark — '언제까지 기다릴지'를 시스템이 어떻게 판단하는가 개념
  2. 2 Windowing — Tumbling/Sliding/Session 개념
  3. 3 Keyed State — ValueState/ListState/MapState 개념
  4. 4 State Backend — HashMapStateBackend vs RocksDB 개념
  5. 5 Checkpointing — Kafka 오프셋과 근본적으로 다른 이유 개념
Day 4

실습 — 개인 PC 로컬 환경에서 직접 돌려보기

로컬 Docker 환경에서 Flink+Kafka를 띄우고, 지금까지 배운 windowed aggregation·watermark·checkpoint를 실제 코드와 UI로 확인할 수 있다

0 / 4
  1. 1 로컬 환경 구성 — Docker Compose로 Flink + Kafka 띄우기 실습
  2. 2 PyFlink로 Kafka 소스 windowed aggregation 구현 실습
  3. 3 Late Data 처리 직접 관찰하기 실습
  4. 4 체크포인트 후 강제 재시작으로 exactly-once 복구 확인 실습
Day 5

응용 — 실무 판단력

Flink SQL/Table API가 DataStream API와 어떤 관계인지, 언제 Flink를 골라야 하는지 실무 기준으로 판단할 수 있다

0 / 2
  1. 1 Flink SQL/Table API — DataStream API의 '상위 호환'이 아니라 '다른 도구' 개념
  2. 2 Flink vs Spark Structured Streaming vs Kafka Streams — 실무 선택 기준 개념

최종 점검

핵심 개념 이해 — 20% 문제 해결 — 30% 실제 적용 — 40% 설명 능력 — 10%

시작하기