[일반지식] 게임 서버 구축 방법 비교: GBaaS vs. 설치형 게임 서버 엔진(2016-06-11, ifunengine)

asked 2016-11-30 17:21:00 +0900

inkeun.kim gravatar image

구글 등의 검색 엔진에 게임 서버 엔진을 검색해보면 GameSparks, Playfab, Fireline 등의 서비스들을 찾아볼 수 있습니다. 이들은 공통적으로 "게임의 백엔드 시스템을 제공" 하며 인증, 빌링, 매치메이킹이나 랭킹 등의 기능이 이미 만들어져 있다고 설명합니다. 이런 류의 서비스들은 "백엔드 시스템을 이미 갖춰두고 이를 필요한만큼 쓸 수 있게 한다" 라는 의미에서 Backend-as-a-Service, 줄여서 BaaS 라고 부릅니다. ("-as-a-Service" 는 "클라우드 형태로, 필요한만큼 쓰고 비용을 지불할 수 있도록 서비스화 한 것" 으로 이해하시면 됩니다.) 그리고 이 중에서도 특히 게임 서비스를 위한 백엔드 서비스를 Game Backend-as-a-Service, 줄여서 GBaaS 라고 부릅니다. 앞에서 언급된 서비스들은 모두 현재 서비스되고 있는 GBaaS 들입니다. 그럼 이런 GBaaS 와 아이펀 엔진과 같은 설치형 게임 서버 엔진은 어떤 점에서 다를까요?

먼저 설치형 게임 서버 엔진과 GBaaS가 어떤 방식으로 동작하는지를 구성도로 살펴보겠습니다.

  1. 설치형 서버 엔진을 사용하는 경우

설치형 서버 엔진을 사용하는 경우, 서버 프로그래머는 엔진이 제공하는 기능들을 이용하여 게임 콘텐츠를 구현하게 됩니다. 서버 엔진은 여러 게임에서 사용될 수 있는 공통의 기능을 제공하기 때문에, 구현하려는 콘텐츠에 따라서 1) 제공되는 기능이 정확히 입맛에 맞는 경우가 있을 수 있고, 경우에 따라서는 2) 서버 프로그래머가 엔진이 제공하는 공통 기능을 이용해 게임에 특화시킨 콘텐츠를 구현해야될 수도 있고, 3) 필요한 기능이 아예 제공되지 않거나 아니면 구현하려는 콘텐츠와 맞지 않는다면 별도로 기능을 구현해야될 수도 있습니다.

설치형 서버 엔진과 게임 콘텐츠 코드는 하나의 실행 파일로 묶여서 한 프로세스로 동작하게 되어 동작 속도가 빠르며, 이렇게 만들어진 게임 서버는 클라이언트와의 통신을 제외하고는 외부 통신을 거의 하지 않고, 모든 처리를 해당 클라우드 계정 혹은 해당 데이터 센터 안에서 끝낼 수 있기 때문에 서버를 보다 안전하게 관리할 수 있고, 클라와의 통신을 제외한 별도의 네트워크 트래픽에 따른 과금 역시 걱정하지 않아도 됩니다.

또한 유저데이터가 저장되는 디비 서버 역시 같은 클라우드 나 같은 데이터센터 안에 저장할 수 있고, 이에 따라 운영이나 사업상의 이유로 유저 디비를 접근해야되는 경우 손쉽게 처리할 수 있습니다.

그림1: 설치형 서버 엔진의 동작 방식

위의 그림은 유저가 아이템을 사용하기 위해서 화면을 터치한 경우 발생하는 일들에 대한 예시입니다. 이렇게 아이템 사용이 발생하는 경우 클라는 서버에 아이템 사용 요청을 전송하고, 게임 서버는 아이템 사용에 따른 효과를 적용하고 아이템을 인벤토리에서 삭제 한 후에 이 데이터를 디비에 저장합니다. 그리고 아이템 효과에 따라 유저의 상태값이 바뀐 경우 이를 클라에게 전송해줍니다.

  1. GBaaS 를 사용하는 경우

GBaaS 는 유저의 인벤토리, 게임 내 재화 등을 포함해서 유저데이터의 전체 혹은 일부를 GBaaS 상에 저장하고, 게임 서버가 이 데이터들에 접근할 수 있도록 REST API 를 제공합니다. 그리고 매치메이킹처럼 공통적으로 많이 사용되는 게임 콘텐츠 기능들 중 일부도 GBaaS 상에 구현하고 이를 쓸 수 있도록 REST API 를 제공합니다.

REST API 는 쉽게 말해서 HTTP 를 이용해서 컴퓨터 간에 통신을 하게끔 구현한 것이라고 생각하시면 됩니다. (우리가 웹 브라우저 주소창에 http:// 라고 쓰는 것도 HTTP 방식으로 사이트를 접근하겠다는 의미인데, HTTP 는 이렇게 사람이 볼 수 있게 웹사이트를 구축할 때도 쓰이지만, 컴퓨터끼리 통신을 할 때도 이용됩니다.)

GBaaS 는 중요 유저 데이터가 GBaaS 상에 저장되고, 매치 메이킹이나 랭킹 같은 주요 기능이 아예 GBaaS 상에서 구현되어 제공되기 때문에, GBaaS 가 지원하는 기능에 잘 들어맞는 게임의 경우 정말 손쉽게 게임을 구현할 수 있다는 장점이 있습니다. 또한 GBaaS 사업자가 자기들 서버를 관리하기 때문에 유저 데이터 저장을 위한 DB 관리, 그리고 기능이 구현된 서버 관리를 별도로 하지 않아도 된다는 것도 큰 장점이 될 수 ... (more)

edit retag flag offensive close merge delete