Kafka란?

이민석's avatar
Apr 27, 2025
Kafka란?

직전에 쿠버네티스 Istio(envoy) 분석하기 [1]를 공부했는데,
이번에는 Kafka의 구조, 용어정의, 작동원리 등이 궁금해져서 이 글을 작성합니다.

💡

Istio(envoy)를 공부했기에 동료분들의 설명을 이해하기 편리했기에 Kafka를 간단하게 공부해서 Kafka관련 설명을 더 잘 이해하고자 합니다. 이 글은 Kafka 기반의 시스템 설계, 개발 등과는 연관이 없는 단순 정보글입니다.

💡

이 글을 통해, 1. Kafka가 무엇일까? 2. Kafka Producer, Topic, Consumer란 무엇일까? 3. Kafka Consumer, Stream이 뭐가 다를까?

A.1. Kafka 기본 개념

Kafka의 설명 1 [A.1-1]을 보면, 몇가지 특이한 키워드가 있습니다.

  1. 독특한 데이터 차리 방식(publish, subscribe, store, process)

    실제로는 producer, consumer, topic 으로 구분하는 것이 낫다.

  2. 실시간 분산 데이터 스트리밍 플랫폼 [A.1-2]

💡

Apache Kafka is a distributed data streaming platform that can publish, subscribe to, store, and process streams of records in real time.

Kafka에서는
Producer*가 데이터를 Record*라는 형태로 Publish*하여 스토리지에 저장됩니다.

  1. Producer* : 대부분 별도의 어플리케이션이 조건을 만족하는 데이터를 탐색, 발행(e.g. SpringBoot)

  2. Record* : timestamp, key=value의 형태로 데이터를 저장 (순차처리 보장)

  3. Publish* : == POST

Kafka in 100 Seconds
Kafka in 100 Seconds : [youtu.be/uvb00oaa3k8?si=ZTUaTbEBNLOlwFvG]

Kafka에서는
Topic*이라는 그룹으로 Record*들을 순차적으로 처리되도록 보장합니다.
즉, publish/subscribe의 순차 처리는 각 Topic 별로 독립적으로 진행될 것입니다.

Kafka in 100 Seconds
Kafka in 100 Seconds : [youtu.be/uvb00oaa3k8?si=ZTUaTbEBNLOlwFvG]

Kafka에서는
N개의 Topic은 Cluster*에 포함되며, Consumer*는 Topic을 Subscribe*합니다.

  1. Cluster* : Topic, Record들에 대한 모든 처리는 분산 시스템에서 보장됩니다.

  2. Consumer : 대부분 별도의 어플리케이션에서 데이터를 스트리밍 형태로 받음

  3. Subscribe : := GET or := GET and DELETE

Kafka in 100 Seconds
Kafka in 100 Seconds : [youtu.be/uvb00oaa3k8?si=ZTUaTbEBNLOlwFvG]

A.2. Kakfa 설치하기

참고 자료

  1. Youtube (Fireship) - Kafka in 100 seconds

  2. Youtube (The ASF) - Introduction to Kafka Streams

  3. Youtube (데브원영 DVWY) - 카프카 스트림즈! 대용량, 폭발적인 성능의 실시간 데이터 처리!

  4. Docs (Apache) - Apache Kafka

Share article

Unchaptered