Day 84 · 3/5
🌳 고급 백엔드

메시지 큐가 뭔가요?

쉽게 이해하기

우체통을 생각해보세요. 편지를 보내려는 사람은 우체통에 넣기만 하면 되고, 나중에 우체부가 와서 편지를 가져가요. 보내는 사람과 받는 사람이 동시에 만날 필요가 없죠. 메시지 큐도 이와 비슷하게, 서버가 메시지를 큐에 넣으면 다른 서버가 나중에 가져가서 처리할 수 있어요.

핵심 정리

서버들 사이에서 메시지를 주고받을 때 중간에서 보관하고 전달해주는 시스템이에요.

자세히 알아보기

웹 서비스에서 모든 작업을 즉시 처리할 수 없는 경우가 많아요. 예를 들어 회원가입 시 환영 이메일을 보내거나, 동영상을 업로드하면 인코딩 작업을 해야 하는데, 이런 작업들은 시간이 오래 걸려요. 사용자가 기다리게 할 순 없으니, 일단 '나중에 처리할 작업'으로 메시지 큐에 넣어두고 사용자에게는 바로 응답을 주는 거예요. 메시지 큐는 RabbitMQ, Kafka, AWS SQS 같은 도구들이 있어요. 메시지를 보내는 쪽(Producer)과 받는 쪽(Consumer)을 분리해서, 한쪽이 느려지거나 일시적으로 죽어도 시스템 전체가 멈추지 않게 만들어줘요. 큐에 쌓인 메시지들은 차례대로 처리되니까 순서도 보장돼요. 실무에서는 주문 처리, 이메일 발송, 이미지 리사이징, 로그 수집 같은 비동기 작업에 많이 써요. 예를 들어 쿠팡에서 주문을 하면 '주문 접수' → '결제 확인' → '재고 확인' → '배송 준비' 같은 여러 단계가 메시지 큐를 통해 차례대로 처리돼요. 한 단계가 실패해도 재시도할 수 있고, 전체 시스템이 안정적으로 돌아가죠. 메시지 큐를 잘 활용하면 시스템을 느슨하게 연결(loosely coupled)할 수 있어서 유지보수도 쉬워지고 확장성도 좋아져요.