자동 확장 가능한 모바일 게임 서버 구축하기

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

게임 서버 동작 확인하기

이제 모든 구현과 서버 구축이 끝났습니다. 게임 서버이므로 게임 클라이언트를 구현해야 하지만 한참 개발 중일 때에는 일일이 클라이언트에서 확인하려면 매우 번거롭습니다.

구글 크롬 웹 브라우저를 사용하면 HTTP GET, POST PUT, DELETE 등 모든 메서드를 손쉽게 사용할 수 있습니다. 구글 크롬 스토어에서 DHC(Dev HTTP Client)를 설치합니다(DHC로 검색하면 나옵니다).

먼저 서버로 점수를 보내보겠습니다. DHC를 실행합니다(그림 33-16).

  • SERVICE에 게임 서버의 ELB 로드 밸런서 주소와 API 경로를 입력합니다. 먼저 john의 점수를 보낼 것이므로 API 경로는 /users/john/scores가 됩니다.
  • Send 버튼 왼쪽에 있는 HTTP 메서드 목록에서 POST를 선택합니다.
  • 텍스트 형식의 입력 창이 표시됩니다. Send 버튼 아래에 text를 클릭하면 메뉴가 표시됩니다. 여기서 form을 클릭합니다.


그림 33-16 DHC로 점수 보내기

form 형태의 입력 창이 표시됩니다. 초록색 + 버튼을 클릭하면 항목이 추가됩니다. score와 500을 입력하고 Send 버튼을 클릭하면 점수를 서버로 보냅니다. 아래 RESPONSE 부분에 API에서 출력한 결과가 표시됩니다.


그림 33-17 DHC로 점수 보내기

동일한 방법으로 maria도 점수를 300으로 보냅니다.

이제 전체 순위 정보를 얻어보겠습니다.

  • 전체 순위 정보를 얻는 API는 /leaderboard입니다.

Send 버튼을 클릭하면 아래 RESPONSE 전체 순위 정보가 출력됩니다.
그림 33-18 DHC로 전체 순위 정보 보기

동일한 방법으로 유저 정보 얻기, 유저 현재 순위 얻기, 아이템 구입하기 등을 해봅니다.

  • 유저 정보 얻기: GET /users/john
  • 유저 현재 순위 얻기: GET /users/john/rank
  • 아이템 구입하기: POST /users/john/items, itemId 101, ItemSlot 1

DynamoDB로 가보면 ExampleGameLog 테이블에 로그 데이터가 저장되어 있습니다.


그림 33-19 DynamoDB에 로그 저장

RESTful API 보안
실제 게임을 개발할 때에는 내용이 훤히 다 보이는 일반 텍스트 형태로 데이터를 주고 받으면 보안문제가 발생합니다. 반드시 다양한 방법으로 유저를 인증하고 세션을 관리해야 합니다. 그리고 주고 받는 데이터는 암호화해야 하며 암호화 키는 매번 바뀌도록 설계해야 합니다.

암호화된 데이터는 DHC를 사용하여 테스트할 수 없으므로 클라이언트에서 직접 테스트하거나 전용 테스트 도구를 개발하면 됩니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.