이렇게 로비 서버 간 플레이어 데이터를 공유할 경우 간발의 차이로 옛날 데이터를 액세스하는 불상사인 데이터 스테일 문제가 발생합니다. 이를 근본적으로 해결할 방법은 없으며, 매치메이킹 재시작을 자동으로 하는 등 수습 처리를 해야 합니다. 플레이어 입장에서는 그저 매치메이킹에 좀 더 시간이 걸리는 것으로만 인식될 것입니다.
여러분이 즐기는 게임 중에서 매치메이킹을 하다가 갑자기 중단되고 다시 매치메이킹을 하는 경우를 본 적이 있을 것입니다. 다양한 이유가 있을 수 있지만 앞서 말한 경우도 그중 하나입니다. 이 문제를 해결하려면 데이터 복제에 기반을 둔 동기화 방식이 아닌 다른 방식을 사용해야 합니다. 물론 앞서 살펴본 다른 문제점이 따르지만, 그래도 한 번 알아봅시다.
플레이어 목록을 로비 서버 간 복제하지 않고, 플레이어 목록을 한군데 별도 서버(메모리 저장소)에 보관하는 방법입니다.
▲ 그림 10-31 플레이어 목록을 메모리 저장소 역할을 하는 서버 기기에 따로 보관