Kafka를 이해하는 데 있어 Producer와 Consumer만큼이나 중요한 영역이 있다.

바로 Kafka가 데이터를 저장하는 방식이다.

Kafka는 단순한 “메시지 큐”라고 하기엔 그 구조가 놀라울 만큼 정교하고,

“분산 스토리지”라고 하기에는 생각보다 단순하고 빠르다.

Kafka의 본질은 결국 로그(append-only log) 이다.

이 로그가 파티션 안에서 어떻게 저장되고 관리되는지 이해하는 순간,

Kafka의 성능과 안정성이 어디서 오는지 명확하게 보인다.

이번 글에서는 Kafka 저장 구조의 중심을 이루는 다음 개념들을

천천히 풀어서 정리해본다.

각 요소가 어떤 의도로 설계됐는지 알면 Kafka 전체가 하나의 유기체처럼 보이기 시작한다.


Kafka의 저장 단위는 ‘파일’이 아니라 ‘로그(Log)’

Kafka 파티션은 사실 하나의 긴 로그 파일처럼 보이지만,

내부적으로는 여러 개의 Segment 파일들로 나누어 저장된다.