최종 업데이트: 2026년 6월 12일
Apache Kafka는 연속적인 이벤트 스트림을 수집, 처리, 저장하는 데 사용되는 널리 사용되는 오픈소스 이벤트 스트리밍 플랫폼입니다. Kafka는 메시징 미들웨어로 널리 사용되지만 분산 애플리케이션이 하루에 하나의 이벤트부터 초당 수십억 개의 이벤트까지 처리할 수 있도록 확장성과 중복성을 제공합니다. 기존 메시징 시스템과 달리 Kafka는 재현 가능하게 읽고 다시 읽을 수 있는 순서가 지정된 로그에 레코드를 저장하는 내구성 있는 스토리지 시스템이기도 합니다. 이러한 특성 덕분에 Kafka는 분석 및 기타 시스템에서 데이터를 재빌드하거나 구체화하는 데 사용할 수 있는 트랜잭션 데이터베이스에 변경사항을 배포하는 데 널리 사용되는 시스템입니다. 이 패턴을 이벤트 소싱이라고도 합니다.
따라서 Kafka는 메시징 미들웨어를 통해 이벤트 기반 애플리케이션이 통합되는 기존 이벤트 버스 패턴과 데이터 신디케이션(또는 '이기종 구체화') 아키텍처 모두에 중요합니다. 지연 시간이 짧고 비용 효율적입니다.
Google Cloud Managed Service for Apache Kafka를 살펴보고 스트리밍 인프라를 자동화하고 데이터-AI 워크플로를 가속화하세요.
Kafka는 스트리밍 데이터를 가져와 정확히 언제 무슨 일이 일어났는지를 기록합니다. 이 레코드를 추가 전용 로그라고 합니다. 변경 불가능하다고 하는 것은 레코드를 추가할 수는 있지만 변경할 수는 없기 때문입니다. 여기에서 애플리케이션은 로그를 구독하여 데이터에 액세스하거나 로그에 게시하여 실시간으로 데이터를 추가할 수 있습니다.
'Kafka'의 핵심은 지연 시간이 짧은 스토리지 시스템을 의미하지만 스트리밍 플랫폼에는 다른 중요한 구성요소도 포함됩니다. 첫 번째는 Kafka Connect로, 수평 확장 가능한 커넥터를 여러 중요한 시스템에 연결할 수 있는 통합 시스템입니다. 여기에는 변경 데이터 캡처(CDC) 커넥터, 클러스터 간 복제 (MirrorMaker), 레이크하우스(Apache Iceberg), 레이크(객체 스토리지의 Avro 또는 Parquet 파일)와 같은 다운스트림 시스템은 물론 BigQuery와 같은 데이터베이스에 데이터를 쓸 수 있는 기능이 포함됩니다. 둘째, Kafka 프로젝트는 클러스터와 주제를 조작하기 위한 관리 명령줄 클라이언트와 데이터를 읽고 쓰기 위한 고성능 클라이언트 라이브러리를 포함한 강력한 클라이언트 세트를 함께 제공합니다.
과거에는 데이터 처리가 주기적인 일괄 작업으로 처리되었으며, 원시 데이터를 먼저 저장한 다음 임의의 간격으로 처리했습니다. 예를 들어 소매업체는 판매 데이터를 분석하기 위해 하루가 지날 때까지 기다려야 했습니다. 일괄 처리의 한계 중 하나는 실시간이 아니라는 점입니다. 조직과 데이터 과학자는 적시에 비즈니스 결정을 내리고 실시간 AI 모델을 구동하기 위해 데이터가 생성되는 즉시 실시간으로 분석하기를 점점 더 원합니다. 바로 이 지점에서 이벤트 스트리밍이 필요합니다. 이벤트 스트리밍은 이벤트가 생성되는 즉시 무한한 이벤트 스트림을 지속적으로 처리하는 프로세스입니다. 이를 통해 데이터의 시간적 가치를 포착하고 흥미로운 일이 발생할 때마다 조치를 취하는 푸시 기반 애플리케이션을 만들 수 있습니다. 데이터 과학자에게 이는 실시간 특성 추출을 수행하고 지연 시간이 짧은 예측을 제공할 수 있는 기능을 의미합니다.
많은 조직이 데이터 과학자가 생성한 다운스트림 인사이트에 집중하는 반면, Apache Kafka의 주요 실무자는 데이터 엔지니어입니다. 이러한 전문가들은 회사의 애플리케이션과 데이터베이스를 연결하는 중요한 '데이터 파이프'와 통합을 빌드하는 역할을 담당합니다.
데이터 엔지니어는 Kafka를 사용하여 기술 스택 전반에 걸쳐 안정적인 연결을 만듭니다. 이러한 통합은 다음과 같은 여러 가지 형태를 취할 수 있습니다.
일반적인 엔터프라이즈에서 데이터 엔지니어는 애플리케이션팀과 긴밀히 협력하여 사용자 이벤트, 비즈니스 트랜잭션, 데이터베이스 업데이트가 Kafka로 내보내지도록 합니다. 데이터 신디케이션이라고 하는 이 프로세스를 통해 조직 전반의 여러 사용자와 시스템에서 이러한 이벤트를 동시에 사용할 수 있습니다.
데이터 과학 및 AI의 맥락에서 Kafka의 가치는 주로 데이터 액세스에 있습니다. 애플리케이션 로그와 데이터베이스 변경사항에 대한 포괄적인 소스 역할을 합니다. Kafka는 빠른 속도로 유명하지만 대부분의 데이터 과학 워크플로에서는 지연 시간이 짧은 전송보다 데이터 소스의 광범위성과 안정성이 훨씬 더 중요합니다.
AI 시스템은 추론 중에 고품질 학습 데이터와 컨텍스트를 기반으로 실행됩니다. Kafka는 상호작용 로그부터 데이터베이스 변경사항에 이르기까지 다양한 소스 시스템에서 학습 데이터를 수집하는 학습에 중요한 역할을 합니다. 많은 조직에서 여러 서비스의 이벤트를 집계하는 이벤트 버스 또는 애플리케이션 로그의 스테이징 위치로 사용합니다. 따라서 학습 데이터 세트를 생성하기 위한 자연스러운 단일 데이터 소스가 됩니다. Kafka는 레코드를 순서대로 저장하기 때문에 시퀀스에서 작동하는 LLM에 특히 적합합니다.
Kafka는 많은 온라인 추론 작업에 필수적입니다. 애플리케이션 또는 에이전트가 관련성 높은 제품 추천, 검색 응답 또는 프롬프트를 제공하는 능력은 사용자에 대한 최신 컨텍스트를 보유하는 데 달려 있습니다. Kafka는 지연 시간이 짧고 확장 가능한 통신을 지원하므로 추론 시스템이 최신 이벤트를 사용해 사용자 컨텍스트를 수십 밀리초 내에 업데이트할 수 있습니다. 예를 들어 사용자가 음악 앱에서 최신 노래 추천을 거부하거나 금융 애플리케이션에서 주가가 변동하는 경우 추천 서비스는 이 입력을 고려하여 더 나은 추천을 즉시 생성할 수 있습니다.
오픈소스 생태계
Kafka의 소스 코드는 무료로 제공되며, 광범위한 커넥터, 모니터링 도구, 플러그인을 제공하는 글로벌 커뮤니티의 지원을 받습니다.
확장성 및 속도
Kafka는 분산 플랫폼으로, 처리가 여러 머신으로 분할됩니다. 이를 통해 밀리초 미만의 지연 시간을 유지하면서 대규모 데이터 볼륨을 처리하도록 확장할 수 있습니다.
고가용성
분산되어 있기 때문에 개별 머신에 장애가 발생하더라도 Kafka는 안정적으로 유지되므로 미션 크리티컬 애플리케이션에 적합합니다.
온프레미스 Kafka 클러스터를 설정하는 것은 매우 어렵고 팀에서 머신을 프로비저닝하고, 보안을 관리하고, 정기적인 패치를 처리해야 합니다. 관리형 서비스를 사용하면 제공업체가 기본 인프라를 처리하므로 애플리케이션 빌드에 집중할 수 있습니다. 이는 인프라 관리보다는 모델 개발과 인사이트에 집중하려는 데이터 과학팀에 특히 유용합니다.
Kafka는 다음과 같은 4가지 핵심 기능을 통해 스트리밍 이벤트 처리를 지원합니다.