크로스 플랫폼 대상의 앱 개발

휴대폰, 태블릿, 랩탑, 데스크탑 등 사람마다 정도의 차이는 있겠지만 디바이스의 시대라고 할 수 있을 정도로 참으로 많은 기기들을 개개인이 소유하고 있다. 그리고 디바이스 종류에 따라서 각기 구동을 위한 플랫폼이 들어있다.

 
 

전세계 휴대폰 시장의 경우 안드로이드 점유율이 높지만, 국가별로 아이폰과 윈도우폰 점유율이 높은 곳들이 있으며, 태블릿 역시 각각의 종류 별 플랫폼이 있으므로 하나의 서비스를 개발하더라도 여러 플랫폼을 지원하려 한다면 고려해야 할 요소가 많다.

 
 

클라이언트 쪽의 크로스 플랫폼 개발에 대해서 마이크로소프트의 개발도구 및 플랫폼을 활용할 수도 있다. Xamarin이라는 .NET의 오픈 스펙을 구현한 Mono 런타임을 기반한 미들웨어를 마이크로소프트 이외 플랫폼에서 사용하고 MVC 같은 모델을 활용해서 최대한 중복작업을 줄이는 것이다. 개발 툴도 Visual Studio 를 사용하는 형태이며, 관련해 작성한 슬라이드 자료가 있다.

 
 

크로스 플랫폼 개발에서 클라이언트 뿐만 아니라 서버 쪽의 처리 역시 가급적 한번에 대응할 수 있도록 한다면 개발에 중복 작업이 줄어 들 수 있고, 또한 서비스 관리 역시 용이해 질 수 있겠다. 서버 쪽은 직접 혹은 외부의 호스팅 등을 이용해서 구축하고 관리할 수도 있으며, 최근에는 클라우드 개념으로 서버 전체의 기능(인프라 서비스) 혹은 미디어나 앱을 위한 특정 기능 만을 선택적으로 사용할 수도 있다.

 
 

여기에서는 크로스 플랫폼 대상의 앱 개발에서 가급적 개발의 불편을 줄이고 안정적으로 서비스를 한다는 관점에서 마이크로소프트의 윈도우애저에 있는 모바일 서비스에 대해 소개한다. 모바일 서비스는 윈도우, 안드로이드 Android 대부분의 모바일 플랫폼의 일반적인 앱 개발에서 사용될 수 있으며, BaaS(Backend-as-a-Service) 로서 필요한 것들(예를 들어 푸시 알림, 데이터 저장, 사용자 인증 등)을 사용하는 개념이다.

 
 

현재의 모바일 서비스는 윈도우 스토어 앱, 윈도우폰, 안드로이드, iOS, HTML, Xamarin.iOS, Xamarin.Android, Sencha, PhoneGap 등 사용되는 대부분의 클라이언트 환경에서 쉽게 서버 쪽 서비스를 사용할 수 있도록 API나 레퍼런스를 제공하고 있다. 최근에는 백앤드를 기존 Javascript로만 작성이 가능했던 것에 반해서, .NET으로도 작성할 수 있게 되어 .NET에 익숙한 사용자들은 개발 편의성이 더 높아지고 있다.

 
 

일반적인 앱이 아닌 게임 앱 개발로 이야기를 옮겨보면, 크로스 플랫폼을 대응하기 위해서 유니티3d나 Cocos2d-x 같은 멀티 플랫폼을 지원하는 게임용 미들웨어를 많이 사용하고 있다. 앱내결제와 같은 플랫폼 특화 코드를 제외하면 개발한 게임 컨텐츠와 로직의 대부분은 그대로 사용할 수 있기 때문이다.(윈도우 8.1 및 윈도우폰으로 유니티 게임 포팅 강좌)

 
 

유니티 3d에서도 윈도우 애저 모바일 서비스의 데이터 저장 서비스를 활용해서 게임의 높은 점수를 기록하도록 할 수 있다. 현재 유니티에서 윈도우 애저 모바일 서비스를 직접 지원하지 않으므로, 통신하는 유니티 플러그인을 만들어서, 이를 유니티로 만든 게임에서 활용할 수 있다. 이와 같은 작업을 하는 윈도우 스토어 및 윈도우폰 용 유니티 게임에 대한 digitalerr0r의 강좌를 참고할 수 있다. 추가로 오픈 소스로 진행하고 있는 크로스 플랫폼에서 동작하도록 유니티용 모바일 서비스 플러그인을 개발하는 bitrave의 프로젝트도 살펴볼 수 있다.

 
 

국내에 얼마 전 유니티 윈도우 포팅랩이라는 행사가 열려서 많은 유니티로 게임을 개발한 업체에서 참여했었다. 이날 포팅한 게임들의 경우 당일에는 주로 클라이언트 포팅에 치중되어 진행이 되었지만, 실제 각 윈도우 스토어에 올리는 것을 고려할 경우에 데이터 저장 이외에도
푸시알림, 사용자 인증 등 서버 쪽 부분의 활용을 고려할 때 계정 당 10개까지 무료(사용량 제한이 있음)로 쓸 수 있고 개발 및 관리가 용이한 윈도우 애저 모바일 서비스가 활용될 수 있다.

 
 

윈도우 애저 모바일 서비스를 사용하기 위해서 참고할 자료는 국내 커뮤니티인 SQLER 사이트의 영상 강좌(한국어)와 마이크로소프트 본사 채널9의 영상 강좌(영어) 이며, 윈도우 애저 공식 사이트의 모바일 서비스 페이지 있는 다양한 강좌샘플들의 내용도 본인이 개발하고자 하는 플랫폼에 따라서 살펴보길 권한다.