탕구리's 블로그

글로벌 모바일 게임 서비스를 준비하려면 어떻게 해야할까? 본문

일상생활

글로벌 모바일 게임 서비스를 준비하려면 어떻게 해야할까?

탕구리당 2020. 7. 27. 23:31
반응형

글로벌 모바일 게임 서비스를 준비하려면 어떻게 해야 할까?

매우 주관적인 관점에서 이런저런 자료들을 보면서 내용을 정리해보려 해요!

우선, 큼지막한 요소들을 나누어 볼 건데 기술직군 관점에서 글로벌 서비스를 준비하기 위해 고려해봐야 하는 요소들이 뭐가 있을까요?

 

간단하게 생각나는 것들을 정리해보면 아래와 같아요.

 

1. 클라이언트 관련 부분

2. 서버 관련 부분

 

기본적으로 게임 서비스이던 웹 서비스이던 서비스의 종류와 관계없이 서비스를 제공하기 위해 필요한 요소입니다. 사용자가 서비스를 직접적으로 이용하게 될 클라이언트 부분과 클라이언트가 필요한 데이터 및 각종 로직을 처리해주기 위한 서버 부분에 대해 생각해보려 합니다.

 

제가 생각해본 각각의 요소들 중에서 글로벌 서비스를 위해 어떤 부분들을 고려해서 보면 좋을지 한번 생각해 보시고 빠진 내용은 없는지 추가로 더 고려하면 좋을 부분이 있다면 말씀해주세요ㅎㅎㅎ

 

 

클라이언트

첫 번째 요소는 클라이언트 빌드 관련입니다. 먼저 빌드가 글로벌로 배포되는 과정을 살펴보면 현재 안드로이드와 애플 두 가지 플랫폼의 스토어를 통해 여러 나라에 글로벌하게 앱을 배포하는 방식은 앱 빌드를 마켓에 등록 후 어떤 나라의 마켓에 나의 앱(서비스될 앱)을 노출할지 결정할 수 있습니다. 물론 하나의 앱 빌드를 통해 글로벌 서비스를 진행하는 방식 외에도 각 국가별 빌드를 마켓을 통해 배포하는 방식을 이용할 수도 있구요

 

하나의 앱 빌드를 통해 글로벌 배포를 진행하는 경우 내가 선택하는 국가에 따라 해당 국가의 사용자들이 스토어를 통해 앱을 다운로드할 수 있고 이용할 수 있습니다. 이처럼 하나의 앱 빌드를 통해 서비스를 진행하게 되는 경우 어떤 부분을 고려해보아야 할까요?

 

 

글로벌 원 빌드 - 글로벌 서비스를 하나의 앱을 통해 관리하자

 

 

1. 국가마다 가지는 특징들을 어떻게 관리하지?

 

즉, 현지화(Localization)를 어떻게 진행할 것인가 고려해봐야 합니다. 각 나라에서 사용하는 언어, 문화적인 특징과 문화적인 금기(taboo)들과 같이 지역적인 색을 띠고 있는 문제들에 대해서는 어떻게 관리하고 운영할지에 대한 논의가 필요해요

 

 

2. 디바이스적인 특징을 어떻게 관리하지?

 

각 국가마다 선호하는 디바이스의 종류, 디바이스의 사양, 네트워크 환경 등 국가적 특징으로 인한 문제들을 어떻게 해결하고 대응할 것인가에 대한 문제입니다. 게임 서비스에는 게임의 종류에 따라 최소로 요구하는 디바이스 성능이 존재하기에 대체적으로 구형 디바이스를 사용하는 국가에 고 스펙을 요구하는 게임을 서비스를 진행하는 경우 그게 맞는 최적화 작업이 잘 이루어져야 해요.

 

 

3. 각양각색의 시간대, 어떻게 관리하지?

 

인게임 내에서 유저들이 어떤 시간대를 기준으로 게임을 플레이하게 할 것인가에 대한 문제이다. 모바일 게임들을 보면 특정 콘텐츠들은 물론 사용자들이 서비스를 이용하지 않는 시간에 점검을 진행한다거나, 특정 시간대에 관련되어 얽혀 있는 많은 문제들이 있어요. 이러한 문제를 해결하기 위해서는 어떤 기준으로 시간에 대한 관리를 진행할지 고려해보아야 해요.

 

물론, 글로벌 원 빌드를 진행하며 문제점들만 있는 것은 아니에요. 글로벌 원 빌드를 통해 얻을 수 있는 장점 또한 존재해요. 서비스를 개발, 운영하는 측면에선 하나의 빌드(글로벌 원 빌드)에만 신경 쓰면 되기 때문에 인적 자원을 효율적으로 사용할 수 있는 장점이 있어요.

 

의문점 : 멀티 빌드를 통해 앱을 서비스하게 되면 번과 같은 문제들을 줄일 수 있지 않을까?

 

서비스가 이루어질 대상 국가들의 선정이 이루어지게 되면 같은 언어를 사용하거나 문화적 배경이 비슷한 국가들을 하나의 권역으로 묶을 수 있게 되는데 이렇게 되면 서비스를 진행하고자 하는 국가에 대해 더 현지화가 잘된 결과물을 사용자들에게 제공할 수 있게 돼요.

 

그럼 글로벌 멀티 빌드의 전체적인 흐름을 살펴볼까요? 

 

"여러 개의 빌드를 서비스한다 -> 관리해야 하는 요소가 많아진다. -> 많은 인원이 투입되어야 한다. " 

 

즉, 많은 요소를 관리하기 위해 더 많은 인력을 필요로 하고 이에 따른 인건비가 상승이 발생하게 되겠죠...

물론 서비스 대상 국가에 대해 외국 지사가 존재하거나 해당 국가의 퍼블리셔를 이용해 서비스를 하는 경우도 인적 자원 필요에 대한 문제는 감소하지만 추가적인 비용들이 더 늘어나게 되는 경우이니 도찐개찐일 것 같네요.

 

 

4. DLC(download contents)의 배포

 

일반적으로 사용자는 DLC에 대하여 리소스 서버를 통해 다운로드하게 됩니다. 서비스 제공자는 스태틱한 리소스 파일에 대해서는 CDN을 통해 제공하는 게 일반적인데요. 이런 DLC를 제공함에 있어 네트워크 환경은 중요하게 작용합니다. 물론, CDN을 통해 파일을 제공하는 경우 각국의 사용자는 CDN 업체에서 제공하는 Edge 서버에 연결되어 콘텐츠 다운로드를 진행하게 되는데요. 그렇다고 하더라도 네트워크 속도에 따른 전체 파일의 다운로드 시간, 타임아웃 처리 등 국가별로 어떤 로직을 따라 어떻게 처리해줄지에 대한 고민도 해줘야 해요.  

 

이렇게 클라이언트와 관련하여 생각나는 부분들을 정리해보았는데, 다음은 서버와 관련된 부분들에 대해서 살펴봅시다

 

 

서버  

 

두 번째는 서버와 관련되어 고려해볼 부분들입니다. 우선 서버에 대한 부분을 생각하면서 한 가지 의문점이 생겼어요.

 

"글로벌 게임의 정의가 뭐야?", "하나의 서버에 전 세계 사람들이 함께 이용을 해야 글로벌 서비스인가?", "그냥 전 세계 사람들이 이용만 할 수 있으면 글로벌 서비스인가?"

 

위와 같은 의문이 들었지만 이런 의문에 대한 답을 찾는 것은 잠시 접어두고 어떤 요소들을 고려하여 서버 환경을 구성해야 할지에 대해 같이 생각해 보아(BOA) 요!

 

 

1. 게임에서 요구하는 네트워크 최소 환경이 어떠한가?

 

우리가 플레이하는 모바일 게임에는 여러 가지 종류의 게임이 존재해요. 게임 종류에 따라 서버 환경이 어떻게 구성되는지도 많이 상이해집니다. 1:1 혹은 N:N 형식의 대전 게임이나 FPS 게임의 경우 사용자가의 동기화가 잘 이루어져야 하고 웹 서버 형태의 게임들도 있을 것이고 session based의 월드를 구성하는 RPG 게임들도 존재하는데요. 서비스하고자 하는 게임의 스타일에 따라 요구하는 네트워크 환경이 많이 다르게 돼요. (물론 같은 장르의 게임이라도 다를 수 있어요) 또한, 게임 장르뿐만 아니라 나라별로 구축돼있는 인프라에 따른 네트워크 환경이 다르기 때문에 서비스를 하기 위해서는 굉장히 신경 써야 하는 부분이 될 것 같아요.

 

실시간 PVP가 메인인 게임에 한국에 서버를 두고 가용 국가를 전 세계로 잡게 된다면 절대적인 거리 자체가 멀거나 네트워크 환경이 안 좋은 경우 원활한 게임 진행이 불가능하게 되죠. 반대로 3tier 형태의 웹서버 구조를 이용하는 게임의 경우 실시간성이 중요하지 않기 때문에 약간의 네트워크 지연이 발생하더라도 충분히 게임을 진행할 수 있기도 합니다.

 

이렇게 우리가 고려해야 하는 것은 필요로 하는 네트워크 환경과  따라 "권역을 어떻게 나눌 것 인가?" "서버를 어떻게 구성할 것 인가?"에 대한 고려가 필요합니다. 하나의 서버 환경을 구성하여 글로벌을 커버하거나, 실시간성이 중요한 경우 일부 지역별로 권역을 묶어 실시간 처리를 위한나 서버만을 별도로 구성한다거나 아~~~예 권역별로 서버를 전부 뜯어내버리는 형식의 서버 구성도 가능하겠네요. 마지막의 경우는 IDC를 이용하는 경우 운영&관리가 가능할지 모르겠지만... 요즘은 클라우드 서비스가 굉장히 잘 되어있기 때문에 클라우드 환경으로의 이전을 고려해보는 것도 좋을 것 같네요ㅎㅎㅎ

 

 

 

2. 실제 플레이 품질에 대한 보장은?

 

1번에서 바라본 관점들은 이론적인 부분에 착안하여 서버를 구성하기로 마음먹었다면, 실제 환경에서 플레이가 가능한지 확인해 보아야 할 텐데요. 실제 네트워크 테스트를 진행하는 업체를 통해 서비스에 대한 Endpoint에 대한 테스트를 진행하거나 각종 네트워크 테스트 도구를 통해 Low quality 환경에서의 네트워크 테스트를 진행해보는 방법이에요.

이런 테스트들을 통해 실제 내가 서비스하고자 하는 앱이 어떤 네트워크 환경에서 실행 가능한지 확인 가능해요!

 

이렇게 글로벌 서비스를 준비하기 위해서 필요한 요소들이 무엇이 있을까? 에 대해서 생각해보았는데 지금 당장 생각 나는 부분들은 다 정리해보았습니다. 나중에 추가적으로 더 생각나는 부분이 있으면 글을 수정하도록 해야겠어요.

글의 내용 자체는 고려해야 될 요소들에 대해서만 생각해보았지 해결 방법들에 대해서는 자세하게 다루지 않았는데, 나중에 글로벌 서비스를 준비하게 된다면 좀 더 자세하게 다루어보면 좋을 것 같네요.

 

 

그럼 20000!

반응형

'일상생활' 카테고리의 다른 글

당근마켓 채용 LIVE - SRE 세션 정리  (0) 2020.09.23
맛대로! 멋대로! 정규식을 정리하자! - Regexp  (2) 2020.07.29
SRE란 무엇일까?  (6) 2020.07.20
버드뷰 면접 후기  (0) 2019.07.26
WillSon Beta 개발 회고  (3) 2019.07.15
Comments