패스잇
시스템 설계 · 중급

대용량 트래픽을 처리하는 분산 시스템에서 메시지 큐(Message Queue)가 필요한 이유와 주요 역할에 대해 설명하고, 메시지 큐 사용 시 얻을 수 있는 이점과 고려할 점을 이야기해 주세요.

힌트 · 생산자-소비자 패턴, 결합도 감소, 탄력성, 내구성 등을 이점으로 언급하고 메시지 순서 보장, 중복 처리 등을 고려사항으로 설명합니다.

비동기탄력성결합도 감소메시지 보장확장성

모범답안

분산 시스템에서 대용량 트래픽을 처리할 때 메시지 큐는 여러 중요한 역할을 합니다. 가장 큰 이유는 비동기 통신을 가능하게 하여 시스템의 결합도를 낮추고 확장성을 높여주기 때문입니다.

예를 들어, 주문 시스템에서 주문 접수 서비스가 메시지 큐에 주문 메시지를 발행하면, 결제 서비스, 배송 서비스 등은 큐에서 메시지를 가져와 각자의 작업을 처리합니다. 주문 접수 서비스는 다른 서비스의 상태와 상관없이 주문 메시지를 발행하고 자신의 역할만 수행하면 됩니다.

이러한 구조는 시스템의 탄력성을 향상시킵니다. 특정 서비스에 장애가 발생해도 메시지 큐는 메시지를 보관하고 있다가 서비스가 복구되면 전달하여 데이터 유실을 막을 수 있습니다.

하지만 메시지 큐를 사용할 때는 메시지 순서 보장, 중복 처리 방지, 메시지 유실 가능성 등을 고려해야 합니다. 메시지 순서가 중요한 경우에는 큐의 특성을 고려하여 설계해야 하고, 중복 처리를 막기 위해 메시지 ID를 활용하거나 멱등성을 보장하는 방식으로 구현해야 합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 대용량 트래픽 설계 면접 질문

← 대용량 트래픽 설계 면접 질문 전체 보기