Kafka를 배우기 시작하면 누구나 같은 벽을 한 번씩 마주하게 된다.

“아니, 그냥 메시지 큐처럼 보이는데… 왜 이렇게 복잡하지?”

나도 처음엔 그렇게 생각했다. 그런데 Kafka를 조금만 깊게 들여다보면,

이 시스템이 왜 태어났고, 왜 지금 같은 구조를 갖게 됐는지가 놀랍도록 논리적이다.

이번 글에서는 Kafka의 전체 그림을 조용히 펼쳐놓고,

기술적인 문장들 사이에 숨은 의도를 차근차근 짚어본다.

조급하게 이해하려 하지 않아도 된다.

큰 흐름만 잡아도 이후의 모든 내용이 훨씬 편안해진다.


Kafka가 진짜로 하고 싶은 일

Kafka는 단순히 “메시지를 전송하는 도구”가 아니다.

원래부터 대량의 데이터를 안정적으로 저장하고, 여러 시스템이 나눠 가져갈 수 있도록 하는 분산 로그 저장소로 설계됐다.

Kafka의 철학은 아주 단순하다.

“데이터를 한 번 잘 적어두고,

필요한 소비자들이 제각각 원할 때 가져가게 하자.”

그 단순한 이야기를 현실에서 가능하게 만들어 준 것이

파티션, 리플리케이션, ISR, 세그먼트 같은 개념들이다.

조금 복잡해 보이지만, 사실 다 이유가 있다.


Topic과 Partition, 그리고 보이지 않는 질서

Kafka에서 Topic은 이름일 뿐이다.