18. 게임 서버 배포 전략: Blue-Green·Canary·Rolling과 상태 유지 서버의 제약
난이도 상 해설 보기 →
문제
문제 18 — 게임 서버 배포 전략: Blue-Green·Canary·Rolling과 상태 유지 서버의 제약
일반적인 무상태(stateless) 웹 API 서버는 Blue-Green, Canary, Rolling 같은 배포 전략으로 무중단 배포를 비교적 쉽게 달성한다. 그러나 실시간 게임 서버는 월드 상태·플레이어 세션·인메모리 상태를 오래 유지하는 stateful 서버라는 점에서 같은 전략을 그대로 적용하기 어렵다. 다음에 답하라.
-
Blue-Green, Canary, Rolling Update 각각의 핵심 개념과 차이를 설명하라. 무엇을 기준으로 트래픽을 전환하며, 롤백은 각각 어떻게 이뤄지는가?
-
위 세 전략은 공통적으로 "기존 인스턴스와 새 인스턴스가 동시에 트래픽을 받는 기간"을 전제로 한다. 무상태 HTTP 서버에서는 이것이 자연스러운 이유를 설명하라(요청 단위로 어느 인스턴스가 처리해도 결과가 동일하다는 성질과 연결하여).
-
상태를 유지하는 실시간 게임 서버(예: 하나의 프로세스가 특정 월드/룸의 세션·인메모리 상태를 계속 들고 있는 구조)에서 위 배포 전략을 그대로 적용하면 생기는 문제를 설명하라. 특히:
- 이미 접속한 클라이언트를 새 버전 인스턴스로 어떻게 옮길 것인가(연결 드레이닝과 인스턴스 이관의 어려움)?
- 게임 도중 프로세스를 재시작하면 인메모리 월드 상태가 사라지는 문제를 어떻게 다룰 것인가(무중단 재시작이 어려운 이유)?
- 배포 전략이 클라이언트-서버 프로토콜/데이터 버전 호환성과 왜 강하게 묶이는가(신·구 버전이 동시에 떠 있는 기간 동안 프로토콜이 호환돼야 하는 문제)?
-
위 제약들을 고려했을 때, 실시간 게임 서버가 실무에서 흔히 택하는 절충안을 두 가지 이상 제시하라(예: 룸/매치 단위 드레이닝 후 교체, 신규 접속만 새 버전으로 유도, 정기 점검 시간을 이용한 전체 교체, 상태 외부화 등). 각 방식의 장단점을 간단히 설명하라.
답안 작성
내 답안 · 자동 저장
직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.