PL 기술 리서치 보고서 — HTML / PDF / Word (.docx) 통합 뷰어
Word (.docx) 다운로드 PDF 파일 다운로드

[기술 리서치 보고서] Apache Kafka 핵심 개념·원리·구조·실무 사용법 및 메시지 브로커 비교 분석

항목내용
보고 대상총괄 PL
작성 일자2026-10-25
검토 영역데이터 엔지니어링 / 백엔드 아키텍처 / 분산 메시징 인프라
최종 권고안대안 A: Apache Kafka (KRaft 모드, v3.7+) 기반 엔터프라이즈 이벤트 스트리밍 백본 채택 권고
의사결정 요청전사 표준 이벤트 브로커로 Kafka(KRaft 3-Node 클러스터) 채택 및 4주(16 M/D) 구축·표준 SDK 배포 승인 요청

1. Executive Summary (핵심 요약)

최종 결론: 대규모 비동기 이벤트 처리, MSA 간 데이터 정합성(Outbox/Saga), 실시간 로그·CDC 파이프라인 통합을 위해 대안 A(Apache Kafka v3.7+ KRaft 모드)를 전사 핵심 이벤트 백본으로 채택할 것을 권고함. 대안 B(RabbitMQ) 대비 초당 처리량 15배 이상 우위(30만+ TPS vs 2만 TPS) 및 디스크 기반 영속성·다중 컨슈머 재처리(Replay) 능력에서 절대적 우위 확인됨.

2. 도입 배경 및 Kafka 핵심 개념·원리

요약: 전통적 메시지 큐의 소비 후 삭제(Destructive Read) 한계와 고부하 병목을 극복하기 위한 Kafka의 분산 커밋 로그(Commit Log) 개념과 초고성능 I/O 4대 동작 원리를 정리함.
그림 1. 단일 소비 후 메시지가 소멸되는 전통적 메시지 큐(좌)와 파티션 기반 불변 커밋 로그에 다중 컨슈머 그룹이 각자의 오프셋(Offset)으로 동시 접근하는 Apache Kafka 스트리밍 구조(우) 비교 개념도
그림 1. 단일 소비 후 메시지가 소멸되는 전통적 메시지 큐(좌)와 파티션 기반 불변 커밋 로그에 다중 컨슈머 그룹이 각자의 오프셋(Offset)으로 동시 접근하는 Apache Kafka 스트리밍 구조(우) 비교 개념도

2.1 현행 문제점 및 도입 배경 (Why Kafka?)

2.2 Apache Kafka 5대 핵심 개념 (Core Concepts)

2.3 Kafka가 초고성능(수십만 TPS)을 내는 4대 핵심 원리


3. 후보 메시지 브로커 대안 비교

요약: 현업 4대 메시징 솔루션(Apache Kafka, RabbitMQ, Redis Streams, Apache Pulsar)을 7대 기준으로 비교한 결과, 대용량 이벤트 스트리밍 및 MSA 데이터 백본에는 대안 A(Apache Kafka)가 최적임.

3.1 메시지 브로커 종합 비교표

평가 기준대안 A: Apache Kafka (권고)대안 B: RabbitMQ (AMQP)대안 C: Redis Streams대안 D: Apache Pulsar
종합 판정🟢 최적 (전사 이벤트 백본)🟡 차선 (복합 라우팅 작업큐용)🟡 차선 (초경량/실시간 캐시용)🔴 보류 (운영 복잡도 과다)
아키텍처 모델분산 불변 커밋 로그 (Pull 방식)
Smart Consumer / Dumb Broker
전통적 메시지 브로커 (Push 방식)
Exchange 라우팅 / Smart Broker
인메모리 자료구조 기반 로그
(단일 스레드 + AOF/RDB)
컴퓨팅(Broker)과 스토리지(BookKeeper) 분리 2계층 아키텍처
처리량 (Throughput)300,000+ TPS (3노드 기준)
파티션 수평 확장으로 선형 증가
20,000 ~ 40,000 TPS
디스크 영속화 시 처리량 급감
100,000+ TPS
(단, 메모리 용량 한계에 종속)
250,000+ TPS
계층형 스토리지 확장 우수
평균 지연 (Latency)5 ~ 15 ms (P99)
배치/플러시 주기에 따라 결정
1 ~ 5 ms (P99)
단건 즉시 Push에 최적화
< 1 ms (Sub-ms)
인메모리 처리로 최저 지연
5 ~ 20 ms (P99)
BookKeeper 네트워크 홉 존재
메시지 영속성 & 재처리기본 디스크 영속 (수일~무제한)
Offset 기반 무제한 Replay 가능
소비(ACK) 즉시 메시지 삭제
과거 메시지 재처리(Replay) 불가
메모리 크기에 제한됨 (MAXLEN)
장기 보관 시 RAM 비용 급증
디스크 및 S3 Tiered Storage 지원
Replay 및 멀티테넌시 지원
라우팅 및 기능 특성Topic + Partition 단순 구조
Kafka Streams / Connect 생태계
Exchange(Direct/Topic/Fanout)
메시지별 우선순위·지연큐·TTL 강점
Consumer Group 지원
별도 브로커 없이 기존 Redis 활용
큐잉(RabbitMQ) + 스트리밍(Kafka) 통합 모델 지원
운영 난이도 / 비용중 (KRaft로 대폭 간소화)
월 $720 (3노드 표준 클러스터)
하~중 (Erlang 클러스터)
월 $450 (소규모 큐에 경제적)
하 (기존 Redis 재활용)
대용량 적재 시 RAM 비용 폭증
상 (Broker + BookKeeper + ZK)
월 $1,400+ (최소 6~9노드 필요)

3.2 대안별 채택 및 워크로드별 선정 가이드


4. 아키텍처, 내부 구조 및 실무 표준 사용법

요약: Kafka(KRaft) 클러스터의 파티션·컨슈머 그룹 내부 아키텍처와 초고성능 I/O 파이프라인을 도식화하고, 프로덕션 장애를 예방하는 Producer / Broker / Consumer 필수 설정 및 실무 사용법을 정의함.

4.1 클러스터 내부 구조 및 Consumer Group 병렬 구독 아키텍처

Apache Kafka 기술 아키텍처 보고서 · 4.1 클러스터 내부 구조 및 파티션 매핑Apache Kafka (KRaft) 클러스터 및 Consumer Group 구조
Apache Kafka (KRaft) 클러스터 구조 및 Consumer Group 병렬 구독 아키텍처 프로듀서가 메시지 키 해싱으로 토픽의 3개 파티션에 분산 기록하고, KRaft 컨트롤러가 복제(ISR)를 관리하며, 다수의 Consumer Group이 독립적인 Offset으로 병렬 소비하는 구조. PRODUCERS · 발행 KAFKA CLUSTER (KRAFT) · TOPIC PARTITIONS CONSUMER GROUPS · 구독 PRODUCER 1 비즈니스 서비스 Key 해싱 · LZ4 압축 acks=all · 멱등성 PRODUCER 2 CDC · 로그 에이전트 Debezium · Outbox 실시간 변경 스트림 PARTITION 0 · LEADER (BROKER 1) Offset 0..N 순차 커밋 로그 · ISR 복제 (RF=3) PARTITION 1 · LEADER (BROKER 2) 동일 Key 순서 보장 · min.insync.replicas=2 PARTITION 2 · LEADER (BROKER 3) 세그먼트 파일(.log/.index) · 보존 주기 7일 KRaft Quorum Controller · Raft 메타데이터 합의 CONSUMER GROUP A 실시간 결제 · 알림 워커 파티션 1:1 전담 매핑 Offset 실시간 커밋 CONSUMER GROUP B 데이터 레이크 · 분석 적재 독립 Offset 배치 소비 과거 시점 Replay 지원 Schema Registry (Avro · Protobuf 스키마 버전 검증) & Dead Letter Topic (DLT 격리) 프로듀서-컨슈머 간 스키마 호환성 강제 · 역직렬화/처리 실패 메시지 자동 격리 및 재처리 LEGEND 핵심 파티션 분산 발행 · 실시간 구독 (Focal) CDC 수집 · 다중 그룹 독립 구독 일반 파티션 할당 스키마 검증 · DLT 연동
다이어그램 1. 프로듀서 Key 해싱 분배, KRaft 기반 3-파티션 리더/ISR 복제, 다중 Consumer Group 독립 오프셋 구독 및 Schema Registry/DLT 연동 구조

4.2 초고성능 I/O 원리 (Page Cache · Zero-Copy) 및 무손실 파이프라인

Apache Kafka 기술 아키텍처 보고서 · 4.2 초고성능 I/O 원리 및 무손실 메커니즘OS Page Cache · Zero-Copy 원리 및 End-to-End 파이프라인
Kafka 초고성능 I/O 원리 (Page Cache · Zero-Copy) 및 무손실 파이프라인 배치 압축 전송된 메시지를 OS 페이지 캐시와 순차 디스크 쓰기로 기록하고, 컨슈머 조회 시 sendfile() Zero-Copy 시스템 콜로 유저 공간 복사 없이 NIC 버퍼로 직결 전송하는 원리. 커널 캐시 직결 비동기 fsync STEP 1 · BATCHING 프로듀서 배치 압축 linger.ms=5 · LZ4/Zstd STEP 2 · IDEMPOTENT 중복 제거 · Offset 할당 PID + Sequence 검증 STEP 3 · OS PAGE CACHE 커널 페이지 캐시 기록 Sequential Append O(1) STEP 4 · ISR REPLICATION Follower 복제 · ACK min.insync.replicas=2 STEP 5 · LOG SEGMENT 디스크 세그먼트 영속화 .log · .index 희소 인덱스 STEP 6 · ZERO-COPY I/O sendfile() 네트워크 전송 유저 공간 복사 0회 · DMA 직결 STEP 7 · CONSUMER POLL 컨슈머 배치 폴링 처리 멱등성 처리 · 실패 시 DLT STEP 8 · OFFSET COMMIT 수동 오프셋 커밋 완결 __consumer_offsets 저장 LEGEND Page Cache · Zero-Copy 핵심 경로 (Focal) 네트워크 송수신 · 오프셋 커밋 비동기 디스크 플러시 · Cold Read
다이어그램 2. 프로듀서 배치 압축부터 OS Page Cache 순차 기록, sendfile() Zero-Copy 네트워크 전송 및 수동 오프셋 커밋까지의 End-to-End 동작 원리

4.3 실무 표준 사용법 및 프로덕션 필수 설정 (Best Practices)

① Producer 실무 설정 및 사용 규칙 (무손실 + 고성능 배치)

② Broker & Topic 설계 및 파티션 수 산정 공식

③ Consumer 실무 설정 및 장애 격리 패턴 (수동 커밋 + 무중단 리밸런싱 + DLT)


5. 주요 리스크 및 대응 방안

요약: Kafka 실무 운영 시 가장 빈번하게 발생하는 5대 장애 시나리오(리밸런싱 폭풍, 컨슈머 랙, 독약 메시지, 파티션 쏠림, 디스크 고갈)와 사전 예방·우회 대책을 수립함.
구분리스크 요인발생 가능성영향도사전 예방 및 대응 방안 (Mitigation & Contingency)
운영무거운 비즈니스 로직으로 poll() 간격이 초과되어 Rebalancing Storm(무한 리밸런싱 폭풍) 발생상상- max.poll.records를 기본 500에서 50~100으로 하향하고 max.poll.interval.ms를 5분 이상으로 확보함
- CooperativeStickyAssignor 및 group.instance.id(Static Membership)를 설정하여 배포 시 불필요한 파티션 재할당 차단함
기술잘못된 포맷의 메시지(Poison Pill) 유입으로 컨슈머 역직렬화 무한 실패 및 파티션 블로킹중상- ErrorHandlingDeserializer를 기본 래퍼로 적용하여 역직렬화 에러 시 컨슈머 스레드가 죽지 않고 즉시 DLT(Dead Letter Topic)로 바이패스 격리함
- Schema Registry를 도입하여 배포 전 스키마 하위 호환성(BACKWARD)을 검증함
성능특정 Message Key(예: 대형 가맹점 ID)에 이벤트가 집중되어 Partition Skew(파티션 핫스팟) 발생중중- 순서 보장이 불필요한 로그는 Key 없이 전송하고, 순서가 필요한 핫스팟 키는 Key + Sub-Shard(0~3) 복합키 전략 또는 커스텀 파티셔너 적용함
확장트래픽 급증으로 컨슈머 처리 속도가 발행을 따라잡지 못해 Consumer Lag 폭증중상- kafka-exporter + Prometheus로 records_lag_max > 10,000 알람 설정 및 KEDA(Kubernetes Event-driven Autoscaling)로 컨슈머 파드를 파티션 최대치까지 자동 스케일아웃함
인프라브로커 디스크 100% 고갈로 인한 클러스터 전체 쓰기 중단하상- 토픽별 시간 기준(retention.ms=604800000, 7일)과 용량 기준(retention.bytes) 보존 정책을 동시 설정하고, 디스크 사용률 75% 도달 시 즉시 알람 및 S3 Tiered Storage로 아카이빙함

6. 최종 권고안 및 향후 추진 일정

요약: 총괄 PL 승인 시 총 4주(16 M/D) 일정으로 KRaft 클러스터 구축, 관제 연결, 전사 표준 클라이언트 SDK 배포를 완료함.

6.1 단계별 추진 로드맵

단계주요 과업 (Action Items)소요 기간 (일정)핵심 산출물 및 완료 기준 (Exit Criteria)
Phase 1: KRaft 클러스터 구축 및 벤치마크- 3-Broker Kafka(KRaft v3.7+) 클러스터 및 Schema Registry 프로비저닝
- kafka-producer-perf-test 기반 30만 TPS 처리량 및 브로커 1대 강제 종료(Chaos) 무손실 검증
1주차 (4 M/D)- 클러스터 성능·고가용성 검증 보고서 (유실 0건, 페일오버 2초 이내 확인)
- 토픽 네이밍({domain}.{entity}.{event}.v1) 표준안
Phase 2: 사내 표준 클라이언트 SDK 개발- 무손실 Producer(acks=all, 멱등성) 및 수동 커밋/DLT 자동화 Consumer 래퍼 라이브러리 구현
- W3C Trace Context 헤더 자동 주입(OpenTelemetry 연동)
2주차 (5 M/D)- 사내 표준 Kafka Starter SDK 배포
- Retry Topic → DLT 자동 격리 및 재처리 어드민 API 검증
Phase 3: 통합 관제 및 KEDA 오토스케일링- Kafka UI(AKHQ/ Kafbat UI) 및 Prometheus + Grafana(Consumer Lag, ISR 축소, Under-replicated 알람) 구축
- Consumer Lag 기반 KEDA 오토스케일링 연동
3주차 (4 M/D)- 실시간 메시징 관제 대시보드 오픈
- Lag 발생 시 컨슈머 파드 자동 확장 확인
Phase 4: 파일럿 도메인 적용 및 운영 이관- 주문-결제-알림 도메인 Outbox 이벤트 파이프라인 실전 연동
- 운영자 장애 대응 런북(Runbook: Offset 초기화, DLT 재발행, 파티션 증설 절차) 배포
4주차 (3 M/D)- 프로덕션 전환 완료 보고서
- 전사 개발팀 기술 세미나 및 운영 이관 완료

6.2 참고 자료 (References)