4. 서버 토폴로지: 단일 vs 분산, 존/샤딩, 매치메이킹, 부하분산

난이도 상 해설 보기 →
문제

문제 4 — 서버 토폴로지: 단일 vs 분산, 존/샤딩, 매치메이킹, 부하분산

면접 질문

  1. 게임 서버를 "단일 서버(monolithic)"로 시작하는 것과 처음부터 "분산 서버"로 설계하는 것의 트레이드오프를 설명해보세요. 스케일 업(scale-up)과 스케일 아웃(scale-out)의 차이도 함께 말해보세요.

  2. MMORPG의 "존(zone) 분할"과 "채널/샤드(shard) 분할"은 각각 무엇이고 어떤 문제를 해결하나요? 둘의 차이를 플레이어 경험·서버 부하 관점에서 설명해보세요.

  3. 매치메이킹(matchmaking) 시스템을 설계할 때 고려해야 할 핵심 요소(대기 시간, 실력 매칭, 지역/핑)와 그들 사이의 트레이드오프를 설명해보세요. 부하분산(load balancing)은 매칭/게임 서버 배치에 어떻게 관여하나요?

응용 시나리오

오픈월드 MMO를 운영 중입니다. 처음에는 단일 게임 서버 한 대로 시작했는데, 동시접속자가 늘면서 (1) 특정 도시(마을 광장)에 수백 명이 몰려 그 지역만 렉이 심하고, (2) 전체 동접이 한 서버 한계를 넘어섰습니다.

(a) "특정 지역에만 사람이 몰리는" 부하를 해소하기 위해 존/샤딩/채널 중 무엇을 어떻게 적용할지, 그리고 그 경계를 넘나드는 플레이어(존 이동)는 어떻게 처리할지 설계해보세요. (b) 전체 동접 한계를 넘기 위해 서버를 늘릴 때, 무엇을 기준으로 플레이어/월드를 분배할지(분배 키)와 그때 발생하는 "친구끼리 다른 서버에 배정되는" 문제를 어떻게 다룰지 설명해보세요. (c) 새 인스턴스를 동적으로 띄우고 줄이는(오토스케일) 상황에서, 클라이언트가 "어느 게임 서버에 붙어야 하는지"를 어떻게 알게 할지(디스커버리/라우팅) 설계해보세요.

답안 작성
내 답안 · 자동 저장

직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.