검증
검증을 진행함에 있어 오늘날 대다수의 서버 시스템은 몇 가지 과제를 안고 있습니다.
- 검증 항목에 대응하는 환경 구축
- 시간에 관한 검증
- 서버 부하에 관한 검증
검증 항목에 대응하는 환경 구축
검증에 사용하는 인프라는 직접적인 이익을 창출하지 않습니다. 그렇기 때문에 환경을 유지하는 비용은 문제시되기 쉽습니다.
그 결과 빈약한 검증 환경이 만들어지고, 이것이 비효율적인 업무를 낳는 경우가 있습니다. GS2는 pay-as-you-go 방식의 과금 형태를 채택하여, 환경을 늘려도 접근하지 않으면 비용이 발생하지 않습니다. 게다가 환경을 구축하는 것도 GS2-Deploy를 이용하면 곧바로 준비가 완료됩니다.
이러한 특성 덕분에 검증 항목에 맞춰 환경을 손쉽게 늘리거나 줄일 수 있게 됩니다. 구체적으로는 다음과 같은 검증을 하고 싶을 때, 기존의 개발 방식에서는 순차적으로 검증 업무를 진행해야 했지만 GS2에서는 병렬로 업무를 진행할 수 있습니다.
- 하루 1회 퀘스트에 도전할 수 있는 횟수 제한이 올바르게 동작하는지 확인
- 퀘스트의 드롭 보상 내용이 적절한지 확인
위의 예시는 “퀘스트에 도전할 수 있는 횟수에 제한이 있어 드롭 보상 내용을 확인하기 어려워진다"는 상황입니다. 이런 경우 횟수 제한을 없앤 버전을 별도의 환경에 준비하여, 그곳에서 드롭 보상 내용을 검증하게 할 수 있습니다. 별도의 환경을 준비하는 비용이 높으면 이러한 판단을 내릴 수 없어, 한쪽을 확인한 후에야 다른 한쪽을 확인하게 되어 검증에 걸리는 시간이 늘어납니다.
시간에 관한 검증
특정 시각이 되면 이벤트가 시작되는 것을 검증하는 것도 어려운 과제 중 하나입니다. 시간에 관한 처리는 오류를 발견하기 어려우며, 가능하면 검증 환경에서 이벤트 기간을 앞당기는 등의 조치 없이 프로덕션 환경에 적용할 GS2-Deploy 템플릿을 공통화하고 싶을 것입니다.
GS2는 시간에 관한 처리에 대해 시각 오프셋을 지정하여 이용할 수 있는 구조를 제공합니다. 시각 오프셋 지정은 GS2-Account를 이용하는 경우에는 계정 단위로 서로 다른 오프셋을 지정할 수 있으며, GS2-Auth를 사용하여 액세스 토큰을 발급하는 경우에는 액세스 토큰을 발급할 때의 파라미터로 오프셋을 지정할 수 있습니다.

이 기능을 이용하면 2주 후에 개최되는 이벤트의 QA를 진행할 때, +2주의 오프셋을 부여한 계정 또는 액세스 토큰으로 검증함으로써 GS2-Schedule의 이벤트 개최 기간을 변경하지 않고도 검증을 수행할 수 있습니다.
서버 부하에 관한 검증
게임 플레이어를 서버에 맞이하기 전에, 대량의 플레이어가 접속하더라도 문제없이 서비스를 제공할 수 있는지 서버 부하에 관한 검증이 필요합니다. 많은 게임은 과거 실적이 없는 서버 시스템이기 때문에 이 검증은 신중하게 수행해야 할 것입니다.
그러나 GS2는 다수의 게임을 호스팅하고 있으며, GS2의 아키텍처는 초당 10만 건이 넘는 API 요청을 처리할 수 있음이 검증되어 있습니다. 따라서 GS2 이용자는 서버 부하에 대해 걱정할 필요가 없습니다.
그럼에도 아무래도 걱정되는 경우에는 부하 테스트 보고서를 GS2에 유상으로 의뢰할 수 있습니다. 그 방법 또한 매우 간단합니다.
일반적인 게임 플레이어가 하는 것과 동등한 플레이를, 가능하면 10명 이상이 1시간 정도 플레이합니다. 그 플레이를 진행할 때 사용한 GS2 계정ID와 프로젝트 이름, 시간대, 그리고 예상되는 CCU를 GS2에 공유합니다. GS2는 그 접근 이력으로부터 테스트 시나리오를 작성하고, CCU에 상응하도록 접근 수를 증폭시켜 테스트를 실시한 후 보고서를 작성합니다.
지금까지 부하 테스트를 해본 적이 있는 분이라면 이것이 얼마나 간단한 과정인지 이해할 수 있을 것입니다.