Kafka Streams는 스트림 처리를 위한 라이브러리로, Kafka topic의 데이터를 실시간으로 처리하고 변환(필터링, 변환, 집계, 스트림 조인)하는 애플리케이션을 구축합니다. Kafka 위에서 직접 실시간 데이터 처리를 가능하게 합니다.
스트림 처리란
STREAM PROCESSING → 데이터가 도착하는 대로 연속적으로(실시간) 처리, 배치(저장된 데이터를
주기적으로 처리)와 대비:
→ topic에서 이벤트 소비, 변환/분석, 결과 생산(종종 다른 topic으로)
→ 실시간: 이벤트가 발생하는 대로 반응하고 처리(저지연)
→ 실시간 분석, 변환, 모니터링, enrichment, 집계에
Kafka Streams가 제공하는 것
KAFKA STREAMS = Kafka 위에 스트림 처리 앱을 구축하는 Java/Scala LIBRARY:
→ topic에서 읽고, 처리하고, topic에 쓰기(처리 토폴로지)
→ 연산: map, filter, transform; 집계(count, sum); 윈도잉(time window);
JOIN(스트림/테이블 조인)
→ STATEFUL 처리 → 상태 유지(예: 누적 카운트)와 내결함성
→ STREAM 대 TABLE → 스트림(이벤트)과 테이블(상태/changelog)의 이중성(KStream/KTable)
→ 라이브러리(앱 내에서 실행) — 별도 클러스터 불필요(Flink/Spark와 대비)
