894 words
4 minutes
RabbitMQ와 Kafka를 비교했을 때, 두 메시지 큐 시스템 간의 차이점은 무엇인가요
2025-04-28

” 하루에 하나씩 BE 면접 문제 4월 26일입니다.

메시지 큐(Message Queue)란?#

메시지 큐는 프로그램끼리 데이터를 주고받을 때 사용하는 중간 우체통 같은 시스템입니다.
하나의 프로그램이 처리해야 할 작업을 큐에 저장해두고, 다른 프로그램이 나중에 꺼내서 처리할 수 있도록 합니다.
여기서 ‘메시지’는 프로그램 간에 주고받는 작은 데이터 조각을 의미하고,
‘큐(Queue)‘는 먼저 들어온 메시지가 먼저 처리되는 줄서기 방식(FIFO: First In, First Out)을 뜻합니다.

메시지 큐를 사용하는 이유#

메시지 큐는 다양한 이유로 백엔드 시스템에 사용됩니다.
대표적인 이유는 다음과 같습니다.

  • 비동기 처리: 요청을 바로 받고, 시간이 오래 걸리는 작업은 나중에 따로 처리합니다.

  • 서비스 간 분리(Decoupling): 프로그램끼리 직접 연결되지 않고, 큐를 통해 느슨하게 통신합니다.

  • 트래픽 완충(Buffering): 순간적으로 많은 요청이 들어와도 큐에 쌓아두고 천천히 처리할 수 있습니다.

  • 장애 대응(Reliability): 소비자가 잠시 중단되더라도 큐에 남아있는 메시지를 나중에 다시 처리할 수 있습니다.

예를 들어, 회원 가입 후 환영 이메일을 보내야 한다고 할 때, 가입 처리는 바로 완료하고, 이메일 발송 작업은 큐에 맡겨서 나중에 처리할 수 있습니다.
이런 방식으로 사용자 경험을 빠르게 하면서, 서버 부하도 줄일 수 있습니다.

메시지 큐는 미들웨어다#

메시지 큐는 프로그램과 프로그램 사이에서 중간다리 역할을 합니다.
서로 직접 통신하지 않고 큐를 통해 데이터를 주고받기 때문에, 백엔드 아키텍처에서 중간 계층(Middleware) 역할을 수행합니다.
메시지 큐를 사용하면 시스템 간의 연결을 느슨하게 만들고, 확장성과 안정성을 높일 수 있습니다.


RabbitMQ와 Kafka#

메시지 큐 시스템 중 대표적으로 많이 사용되는 것이 RabbitMQ와 Kafka입니다.
두 시스템은 목적과 특성이 조금 다릅니다.

RabbitMQ는 하나하나 작업을 확실하게 전달하는 데 강합니다.
메일 발송, 알림 전송, 주문 요청 처리처럼 “일 하나하나를 빠르고 안전하게 처리”하고 싶은 경우에 적합합니다.
메시지를 보내고 나면 소비자가 읽은 것을 확인하고(acknowledgement) 메시지를 삭제하는 구조를 가집니다.

Kafka는 대량의 데이터를 고속으로 저장하고 처리하는 데 강합니다.
수많은 유저의 클릭 기록, 앱 사용 로그, 실시간 스트리밍 데이터 같은 것을 모아두고, 필요할 때 여러 소비자가 나눠서 가져가 분석하는 데 최적화되어 있습니다.
Kafka는 메시지를 읽어도 바로 삭제하지 않고, 지정된 기간 동안 디스크에 저장합니다.
이를 통해 데이터 유실 없이 다양한 소비자가 자유롭게 메시지를 소비할 수 있습니다.

RabbitMQ와 Kafka를 비교했을 때, 두 메시지 큐 시스템 간의 차이점은 무엇인가요
softourr.github.io/rabbitmq와-kafka를-비교했을-때-두-메시지-큐-시스템-간의-차이점은-무엇인가요.md
Author
softourr
Published at
2025-04-28