목록 보기
네이버페이 주문에 적용된 확장 가능한 대기열 개발기
백엔드

네이버페이 주문에 적용된 확장 가능한 대기열 개발기

네이버 D2
네이버 D2
2024년 10월 24일

두줄요약

네이버페이 주문 서비스에 확장 가능한 대기열 Massronome을 적용한 사례를 소개했습니다. 주문 실패를 줄이기 위해 통신, 대기표, 서버 분배를 각각 확장 가능하게 설계했습니다.

문제 상황

  • 주문 요청 급증 시 기존 차단 방식으로는 시스템 보호는 가능했지만 구매자 주문 실패와 사용자 경험 저하 발생
  • 이벤트성 트래픽, 판매자별 편차, 전체 트래픽 과다, 구매자·판매자 수 증가에 모두 대응 가능한 대기열 필요

구조와 흐름

  • 주문서 화면 진입까지만 대기열 관리하고 이후 구매자 이탈까지는 추적하지 않는 범위 설정
  • 판매자별 대기열과 전체 대기열을 별도 레벨로 두어 동시에 발동 가능하도록 구성
  • 구매자 수 증가에 맞춰 대기열 정보 전송은 Socket.IO 브로드캐스트로 위임하고, 대기표는 순번 범위만 관리하는 단순 구조 채택

선택 이유

  • 폴링 방식의 클라이언트별 조회 부하를 줄이고 통신 자원 확장을 분리하기 위한 Socket.IO 사용
  • 정렬된 대기표 관리의 변경 비용과 분산 저장 정합성 부담을 피하기 위해 비정렬 순번 기반 관리 선택
  • 컨테이너 환경에서 서버 고정 분배가 어려워 check-and-set 기반 경쟁으로 대기열 처리 서버를 유동적으로 할당

성능/운영 포인트

  • 통신 부하와 저장소 확장을 각각 분리해 수평 확장 가능성 확보
  • 대기표 조회·추가·삭제 비용이 구매자 수 증가에 비례해 커지지 않도록 설계
  • 서버 컨테이너 증설만으로 대기열 처리량을 늘릴 수 있도록 운영 대응성 강화

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...