Day 80 · 2/5
🌳 고급 architecture

메시지 큐가 뭔가요?

쉽게 이해하기

음식점의 주문 접수 시스템을 생각해보세요. 손님이 주문하면 주방에 바로 소리치는 게 아니라 주문서를 걸어두고, 주방에서 순서대로 가져가서 처리하죠. 메시지 큐도 마찬가지로 발신자가 메시지를 보내면 큐에 쌓이고, 수신자가 준비되면 순서대로 가져가서 처리합니다.

핵심 정리

서비스 간 비동기 통신을 위해 메시지를 임시 저장하는 중간 저장소입니다.

자세히 알아보기

메시지 큐(Message Queue)는 비동기 통신 패턴의 핵심입니다. 서비스 A가 서비스 B에게 작업을 요청할 때, B가 바로 처리할 수 없거나 처리 시간이 오래 걸리는 경우, 메시지 큐를 중간에 두고 비동기로 처리합니다. 실무 예시를 들어볼까요? 회원가입 시 환영 이메일을 보내야 한다고 가정해봅시다. 사용자가 가입 버튼을 누르면 즉시 회원 정보를 DB에 저장하고, '이메일 발송' 작업은 메시지 큐에 넣어둡니다. 사용자는 이메일 발송이 완료될 때까지 기다리지 않아도 되고, 별도의 워커(Worker) 프로세스가 큐에서 메시지를 꺼내 이메일을 발송합니다. 만약 이메일 서버가 일시적으로 다운되어도 메시지는 큐에 안전하게 보관되어 있다가 나중에 재시도할 수 있습니다. 메시지 큐는 시스템의 확장성과 안정성을 크게 향상시킵니다. 트래픽이 폭증해도 큐가 버퍼 역할을 해주고, 한 서비스가 장애가 나도 다른 서비스에 영향을 주지 않습니다. 대표적인 메시지 큐로는 RabbitMQ, Apache Kafka, AWS SQS, Redis Pub/Sub 등이 있습니다. 특히 Kafka는 대용량 실시간 데이터 처리에 특화되어 있어 로그 수집, 이벤트 스트리밍, 데이터 파이프라인 구축에 많이 사용됩니다.