패스잇
시스템 설계 · 중급

분산 메시징 시스템에서 메시지 처리의 멱등성(Idempotency)이 중요한 이유를 설명하고, 멱등성을 보장하기 위한 일반적인 구현 방법에는 어떤 것들이 있는지 구체적인 예시와 함께 설명해 주세요.

힌트 · 멱등성은 메시지 중복 처리 시에도 시스템 상태가 변하지 않도록 보장하여 안전한 재시도를 가능하게 합니다. 고유한 메시지 ID를 활용한 중복 검사나 상태 기반의 연산이 대표적인 방법입니다.

멱등성메시지 중복고유 ID상태 관리트랜잭션

모범답안

분산 메시징 시스템에서 멱등성은 메시지가 여러 번 전달되더라도 시스템 상태가 한 번 처리된 것과 동일하게 유지되도록 보장하는 중요한 속성입니다. 네트워크 오류나 시스템 장애로 인해 메시지가 중복 전달될 수 있는데, 멱등성이 없으면 동일한 메시지가 여러 번 처리되어 데이터 불일치나 예상치 못한 부작용이 발생할 수 있습니다.

멱등성을 보장하는 일반적인 방법으로는 고유한 메시지 ID를 사용하는 것입니다. 메시지를 처리할 때마다 해당 메시지 ID가 이미 처리되었는지 데이터베이스나 캐시 등을 통해 확인하고, 이미 처리된 메시지라면 무시하는 방식입니다. 예를 들어, 주문 생성 메시지에 고유한 order_id가 있다면, 해당 order_id로 이미 주문이 생성되었는지 확인하고 중복 생성을 방지할 수 있습니다. 또 다른 방법은 상태 기반 연산을 사용하는 것입니다. 예를 들어, 특정 상태로 업데이트하는 연산은 여러 번 수행해도 결과가 동일하므로 멱등성을 가집니다.

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

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

함께 보는 분산 시스템 면접 질문

← 분산 시스템 면접 질문 전체 보기