핵심 인사이트 (3줄 요약)

  1. 본질: 아파치 카프카(Apache Kafka)는 대용량 실시간 데이터 스트림을 발행-구독(Pub-Sub) 모델로 처리하는 고성능 분산 메시지 브로커다.
  2. 가치: 데이터 생산자(Producer)와 소비자(Consumer)를 완전히 분리하여 결합도를 낮추고, 데이터를 디스크에 순차 저장하여 엄청난 처리량과 장애 복구력을 제공한다.
  3. 판단 포인트: 마이크로서비스 간 이벤트 전달, 실시간 로그 수집, 대규모 트래픽 처리가 필요한 데이터 파이프라인의 '중앙 신경망'으로 도입한다.

Ⅰ. 개요 및 필요성

링크드인(LinkedIn)에서 하루 수조 건의 이벤트를 처리하기 위해 만든 카프카는 이제 현대 IT 아키텍처의 필수 요소다. 기존의 메시지 큐는 메시지를 읽으면 지워버렸고, 많은 데이터를 처리하기엔 버거웠다. 카프카는 "데이터를 로그 파일처럼 순차적으로 쌓아두고, 필요한 사람이 알아서 읽어가게 하자"는 역발상을 적용했다. 덕분에 시스템 장애가 나도 데이터를 다시 읽을 수 있고, 수많은 서비스가 동시에 같은 데이터를 받아가도 병목이 생기지 않는다.

📢 섹션 요약 비유: 카프카는 '초대형 하이패스 톨게이트'이자 '무한 재생 TV 방송국'이다. 수만 대의 차(데이터)가 멈추지 않고 통과하며, 지나간 방송(데이터)을 보고 싶은 시청자(소비자)가 언제든 다시 돌려볼 수 있는 시스템이다.


Ⅱ. 아키텍처 및 핵심 원리

1. 주요 구성 요소

  • Producer (발행자): 데이터를 생성하여 카프카 토픽에 보낸다.
  • Topic (주제): 데이터가 저장되는 카테고리. 여러 개의 **Partition(파티션)**으로 나누어 병렬 처리한다.
  • Consumer (구독자): 토픽에서 데이터를 읽어간다. 자신이 어디까지 읽었는지 지표(Offset)를 기록한다.
  • Broker (브로커): 카프카 서버 자체를 의미하며, 데이터를 저장하고 관리한다.

2. 핵심 원리: Append-only 로그와 순차 I/O

  • 데이터를 수정하지 않고 파일 끝에 계속 덧붙인다. 하드디스크의 헤더를 움직이지 않는 '순차 쓰기' 방식을 사용하여 SSD 못지않은 속도를 낸다.
[ Producer ] ──▶ [ Topic (Partitions) ] ──▶ [ Consumer Group ]
      A               [ P0 ][ P1 ][ P2 ]           Consumer 1
      B               (Replication 적용)           Consumer 2

📢 섹션 요약 비유: 토픽은 '신문사'다. 발행자(Producer)는 기사를 쓰고, 구독자(Consumer)는 자기가 원하는 섹션(Topic)을 골라 읽는다. 내가 어제 신문을 못 봤어도 신문함(Partition)에 기사가 남아있어 나중에 읽을 수 있다.


Ⅲ. 비교 및 연결

RabbitMQ vs Kafka

비교 항목RabbitMQ (전통적 MQ)Apache Kafka (분산 스트리밍)
메시지 보존읽으면 삭제 (Transient)영구 저장 가능 (Durable)
처리량보통 (복잡한 라우팅 중심)매우 높음 (대량 스트리밍 중심)
유연성소비자 상태를 브로커가 관리소비자가 직접 관리 (Offset 활용)
장애 복구다소 제한적파티션 복제를 통한 고가용성 보장
적합 사례비동기 작업 지시, 소규모 통신로그 수집, 실시간 분석 파이프라인

📢 섹션 요약 비유: RabbitMQ가 '배달원이 직접 건네주고 가는 택배'라면, 카프카는 '아파트 무인 택배함'이다. 배달원(생성자)은 넣어두고 가기만 하면 되고, 주인(소비자)은 편한 시간에 꺼내 가면 된다.


Ⅳ. 실무 적용 및 기술사 판단

기술사 핵심 포인트:

  1. 멱등성 (Idempotency): 네트워크 오류로 중복 데이터가 들어와도 한 번만 처리되도록 보장하는 기술이 실무의 핵심이다.
  2. Exactly-once (정확히 한 번): 카프카의 트랜잭션 기능을 통해 데이터 유실이나 중복 없이 정확히 한 번 전달하는 메커니즘을 설명해야 한다.
  3. 주키퍼(Zookeeper) 이탈: 최신 카프카(KRaft 모드)는 복잡한 주키퍼 없이 자체적으로 클러스터를 관리하는 방향으로 진화했음을 언급한다.

📢 섹션 요약 비유: 카프카는 IT 시스템의 '블랙박스 기록 장치'다. 비행기(시스템)에서 일어나는 모든 일을 기록해두었다가 사고(장애)가 나면 원인을 분석하고 상황을 재현하는 핵심 장부 역할을 한다.


Ⅴ. 기대효과 및 결론

카프카는 데이터의 '흐름'을 제어하는 인프라의 표준이 되었다. MSA의 복잡한 통신 문제를 이벤트 기반 아키텍처(EDA)로 풀어내는 핵심 열쇠이기도 하다. 기술사 시험에서는 단순한 메시지 전달을 넘어 '데이터의 영구 저장', '병렬 확장의 무한함', '실시간 스트림 처리(Kafka Streams)' 역량을 강조하며 통합 파이프라인의 중심축으로 카프카를 제시해야 한다.

📢 섹션 요약 비유: 카프카는 IT 세상의 '대동맥'이다. 온몸 구석구석에 필요한 영양분(데이터)을 실시간으로, 끊김 없이, 대량으로 전달하여 시스템이 살아 움직이게 만든다.


📌 관련 개념 맵

개념연관 키워드관계
Partition병렬 처리, 분산 저장카프카가 대량 데이터를 빠르게 처리하는 비결
Offset읽기 위치, 인덱스소비자가 어디까지 읽었는지 기억하는 이정표
Replication복제, 고가용성브로커 하나가 죽어도 데이터가 사라지지 않게 보호
Consumer Group부하 분산, 협력여러 소비자가 일을 나누어 처리하는 단위

👶 어린이를 위한 3줄 비유 설명

  1. 아주 큰 도서관에 끊임없이 책이 들어오는데, 수천 명의 아이가 동시에 책을 읽어도 줄을 서지 않아도 되는 곳이에요.
  2. 내가 읽다가 잠시 화장실을 다녀와도, "아까 여기까지 읽었지!" 하고 표시해둔 책갈피(Offset)가 있어서 바로 이어 볼 수 있어요.
  3. 책을 한 번 읽었다고 버리지 않고 서가에 잘 보관해두기 때문에 나중에 또 볼 수 있답니다.