JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

실전에서 바로 써먹는 Kafka 입문

Kafka 사전 지식 / 환경 셋팅

Kafka를 왜 배워야할까?
Kafka란? / 메시지 큐(Message Queue)란?
Kafka 설치할 환경 셋팅하기 (feat. EC2)
AWS EC2에 Kafka 설치/실행하기

Kafka 기본 개념

Kafka의 기본 구성 (Topic, Consumer, Producer)
토픽 생성하기 / 조회하기 / 삭제하기
Kafka에 메시지 넣기 / Kafka에서 메시지 조회하기
메시지를 어디까지 읽었는 지 기억하고, 그 다음 메시지부터 처리하기 (Consumer Group, Offset)
[보충 자료] 토픽, 컨슈머 그룹 이름 짓는 법 (Naming Convention)
[실습] Spring Boot에 Kafka 연결을 위한 코드 추가하기
[실습] Spring Boot로 Kafka에 메시지 넣는 코드 작성하기 (Producer)
[실습] Spring Boot가 Kafka에 메시지 잘 넣는 지 테스트해보기
[실습] Spring Boot로 Kafka에서 메시지 조회하기 (Consumer)
Kafka의 비동기 처리로 인한 성능 이점 느껴보기

Kafka 메시지 처리 실패 시 대처 방법

[실습] Spring Boot로 Kafka에서 처리에 실패한 메시지를 재시도(Retry)하도록 만들기
[실습] Spring Boot로 Kafka에서 재시도조차 실패한 메시지를 따로 보관하기 (DLT, Dead Letter Topic)
[실습] Spring Boot로 재시도조차 실패한 메시지 사후 처리하기

Kafka 메시지 처리 성능 높이기 (병렬 처리)

컨슈머가 메시지를 하나씩만 처리하는 현상
파티션(Partition)이란? / 특징
[실습] Spring Boot로 하나의 파티션에는 정말 하나의 컨슈머만 할당되는 지 확인해보기
특정 토픽의 파티션 수 조회하기 / 설정하기 / 변경하기
[실습] Spring Boot로 여러 개의 파티션에 메시지가 골고루 들어가는 지 확인해보기
[실습] Spring Boot에서 여러 개의 컨슈머로 메시지 병렬적으로 처리하기
[실습] Spring Boot에서 하나의 컨슈머로 메시지 병렬적으로 처리하기
적정 파티션 개수 계산하는 방법
컨슈머가 메시지를 지연 없이 잘 처리하고 있는 지 확인하는 방법 (Consumer Lag)

Kafka 장애 대비하기 (고가용성)

노드(node), 브로커(broker), 컨트롤러(controller), 클러스터(cluster), 레플리케이션(replication)이란?
[실습] kafka 서버 총 3대 셋팅하기
[실습] Kafka 서버 3대가 서로 잘 연동됐는 지 확인하기
토픽 세부 정보 출력값 정보 해석하기 (Isr, Leader, Replicas 등)
[실습] 팔로워 파티션에 메시지를 넣으면 어떻게 될까?
[실습] 리더 파티션에 장애가 발생하면 어떻게 될까? / Kafka 서버 1대가 고장나면 어떻게 될까?
Kafka 서버는 몇 대를 운용하는 게 좋을까?
Spring Boot에 Kafka 서버 3대를 연결해서 사용하는 방법

[프로젝트] MSA 프로젝트에서 Kafka 도입하기

프로젝트 설계
[실습] Spring Boot로 UserService 서버 초기 환경 설정하기
[실습] 회원가입 API 전체 뼈대 만들기
[실습] 회원 가입 비즈니스 로직 짜기
[실습] Spring Boot로 EmailService 서버 초기 환경 설정하기
[실습] 이메일 발송을 처리할 Consumer 로직 짜기
[실습] 프로젝트 구조에 맞게 Kafka 셋팅하기
[실습] 잘 작동하는 지 테스트해보기
← 블로그 목록으로 돌아가기

Kafka란? / 메시지 큐(Message Queue)란?

JSCODE 박재성
JSCODE 박재성
2026. 03. 13.
author
JSCODE 박재성
category
Kafka
createdAt
Dec 6, 2025 05:14 AM
isPublic
isPublic
series
실전에서 바로 써먹는 Kafka 입문
slug
what-is-kafka-and-message-queue
type
post
updatedAt
Mar 13, 2026 09:00

✅ 카프카(kafka)란?

Kafka의 의미를 검색해보면 아래와 같이 나온다.
Apache Kafka는 수천 개의 회사에서 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션에 사용되는 오픈 소스 분산 이벤트 스트리밍 플랫폼입니다. - Apache Kafka 공식 홈페이지 -
 
입문자 입장에서 무슨 말인지 이해하기가 너무 어렵다. 입문자용으로 다시 설명해주겠다.
Kafka는 대규모 데이터를 처리할 수 있는 메시지 큐이다.
이렇게만 알고 있어도 충분하다. 그런데 이 의미를 정확하게 이해하려면 ‘메시지 큐’가 무슨 뜻인지 알아야 한다. ‘메시지 큐’가 뭔지 알아보자.
 
 

✅ 메시지 큐(Message Queue)란?

메시지 큐(Message Queue)는 큐(Queue) 형태에 데이터를 일시적으로 저장하는 임시 저장소를 의미한다. 메시지 큐를 활용하면 비동기적으로 데이터를 처리할 수 있어서 효율적이다.
** 동기적 처리 ≒ 순차적으로 처리 ≒ A 작업이 다 끝난 이후에 B 작업을 처리
** 비동기적 처리 ≒ 병렬적으로 처리 ≒ A 작업을 시작한 직후에 B 작업도 바로 시작 (A 작업이 끝날 때까지 안 기다림)
 
이 의미를 정확하게 이해하기 위해 ‘REST API 방식으로 통신하는 방식’과 ‘메시지 큐를 활용한 통신 방식’을 비교해보자.
 
 

✅ REST API 방식으로 통신 vs 메시지 큐를 활용한 통신

REST API 방식은 요청을 보낸 뒤에 모든 작업이 다 처리될 때까지 기다렸다가 응답을 받는 식으로 통신을 한다.
notion image
 
 
하지만 메시지 큐를 활용한 통신 방식은 비동기적으로 작업을 처리하기 때문에 모든 작업이 다 처리되는 것과 상관없이 응답을 받을 수 있다. 이 과정이 처음에 이해가 잘 안 될 수도 있다. 메시지 큐를 활용한 통신 과정을 하나하나 자세히 살펴보자.
notion image
  1. 사용자가 REST API 방식으로 요청을 보낸다.
  1. 요청을 받은 서버는 메시지 큐(Message Queue)에 전달할 메시지를 만들어 전달한다.
      • 메시지 안에는 처리해야 할 요청에 대한 정보들이 담겨있다.
      • 메시지 큐(Message Queue)는 처리해야 할 메시지들을 보관하는 임시 저장소 역할을 한다.
      • 메시지를 만들어 메시지 큐로 전달하는 서버를 보고 프로듀서(Producer)라고 얘기한다. * ‘메시지를 생산하는 주체’를 직관적으로 표현하기 위해 프로듀서(Producer)라는 용어가 만들어졌다.
  1. Producer 서버는 메시지 큐에 메시지를 넣자마자 사용자에게 성공 응답을 한다.
      • 이메일 작업이 끝날 때까지 기다렸다가 응답을 하는 것이 아니라, 메시지 큐에 메시지를 넣자마자 응답을 했다. 이렇게 처리하는 방식을 보고 ‘비동기 방식으로 처리했다’라고 표현한다.
      • 비동기 방식으로 처리하기 때문에 요청을 효율적으로 처리할 수 있다. 이 때문에 대규모 트래픽을 처리할 때도 유리한 구조이다.
  1. 메시지 큐는 Producer로부터 받은 메시지(요청)를 보관하고 있다.
  1. Consumer 서버가 메시지 큐에 들어있는 메시지(요청)를 꺼내서 실제 작업(ex. 이메일 발송 로직 처리)을 수행한다.
      • 메시지를 꺼내서 처리하는 서버를 보고 컨슈머(Consumer)라고 얘기한다. ** ‘메시지를 소비하는 주체’를 직관적으로 표현하기 위해 컨슈머(Consumer)라는 용어가 만들어졌다.
 
이제 다시 한 번 메시지 큐(Message Queue)와 카프카(Kafka)에 대한 의미를 되짚어보자.
  • 메시지 큐(Message Queue)는 데이터를 일시적으로 큐(Queue) 형태로 저장하는 임시 저장소를 의미한다. 메시지 큐를 활용하면 비동기적으로 데이터를 처리할 수 있어서 효율적이다.
  • Kafka는 대규모 데이터를 처리할 수 있는 메시지 큐이다.
 
 
 
📎
이 글은 실전에서 바로 써먹는 Kafka 입문 강의의 수업 자료 중 일부입니다.