앞서 주로 사용자 관점의 차별점에 대해서 설명했는데, 이제 개발자 관점에서 살펴보도록 하자.
넓은 개발자 계층과, 편리한 개발 인프라
삼성 전자가 얼마전에 ‘bada’라는 이름의 모바일 플랫폼을 발표하였다. 필자가 얻은 정보에 따르면 속도도 빠르고, 기기도 좋다. 근데 문제는? 개발자 인프라가 없다. 한마디로 아직 인기가 없는 플랫폼이고, 개발에 필요한 API나, 튜토리얼, 커뮤니티등의 생태계가 생성되지 않아서 개발을 하기가 쉽지 않다.
윈폰7의 개발 인프라는 SilverLight와 .NET 그리고 XNA에 기반을 가지고 있다. 이 기술들은 윈폰7을 위해서 새롭게 개발된 기술이 아니다. 이미 윈도우 프로그래밍에 사용되고 있는 기술이다. 바꿔 말하면, 윈도우 프로그래머는 손쉽게 윈폰7개발에 참여할 수 있다는 말이고, 관련 커뮤니티들도 활성화 되어 있다. C#과 비주얼 베이직과 같은 익숙한 개발 언어를 비주얼 스튜디오라는 익숙한 개발환경에서, 개발하면 된다. 스마트폰 애플리케이션 개발에 있어서 진입 장벽이 높은 것이 쉽지 않은 일인데, MS는 이 부분에 상당히 공을 들인 듯 싶다. 안드로이드가 개발자 층이 넓은 자바를 통해서 급속하게 개발 생태계를 확보했듯이, MS는 .NET이라는 개발자층이 넓은 플랫폼 + 비주얼 스튜디오등의 안드로이드 보다 훨씬 강력한 개발환경으로 개발자층을 지원할 예정이다. 안드로이드 개발자 분들은 아시겠지만, 개발환경은 이클립스다. 이클립스는 자바 개발환경으로 참 좋은 환경이지만, 단하나 문제는 UI쪽의 레이아웃 디자인 하는 도구가 조악하다. 당연히 개발 편이성도 떨어지고 난이도도 올라간다.
<그림. 이클립스 기반의 안드로이드 UI 디자인 도구 >
근 20년간 비주얼 스튜디오라는 개발툴을 계속해서 개발하고 판매했던 MS의 관록이 느껴지는 부분이라고나 할까?
<그림. 비주얼 스튜디오 기반의 UI 디자인 환경>
클라우드 서비스
스마트폰 애플리케이션이 좀 더 나은 서비스를 하기 위해서는 백엔드에 서버가 필요하다, 일반적인 스마트폰 애플리케이션들은 인터넷 서비스 업체 (트위터,구글,페이스북등)가 제공하는 공개 API (OPEN API)를 사용한다. 그런데 좀 더 특화된 서비스를 하고 싶다면?
별도의 서버가 필요하다. 사용자의 정보를 저장하고, 서버에서 여러 트렌젝션을 처리하고, 사용자간의 정보를 처리하기 위한 서버..!! 이런 서버를 개인이 보유하기는 비용적으로 쉽지 않다. 0.99$ 짜리 애플리케이션을 만드는 개발자가 몇백만원짜리 서버를 구입하고 데이터 센터에 호스팅을 하는 것은 쉽지 않다. 더군다나 전세계를 대상으로 서비스를 할려면 속도나 법적 문제 때문에 세계 여러곳에 서비스를 설치 해야 하는데, 이건 개인이 아니라 기업도 쉽지 않은 일 이다.
이런 문제를 해결하는 방법중 하나는 클라우드 서비스를 사용하는 것이다. 클라우드 상에 서버를 임대하거나 저장 공간을 임대해서 사용하고 (Iaas – Infra as a service). 또는 OPEN API플랫폼을 구축하거나 기 구축된 것을 사용하는 것 (Paas – Platform as a service)등이 좋은 예이다.
애플의 경우 일반 사용자에게 제공하기 위한 Public 클라우드는 가지고 있지 않다. 그래서 애플리케이션들은 모두 일반 OPEN API를 사용하거나, 개개인 별로 호스팅 되는 서버를 통해서 서비스를 제공한다.
구글의 경우 클라우드 플랫폼을 제공한다. 그런데 이것이 쌩뚱맞게 Python 언어 기반이다. 근래에들어서 Java도 지원하긴 하지만, 자세히 들여다 보면 제약 사항이 많다. DB서비스나 Storage서비스도 없거나 제약 사항이 있다.
여기에 또 윈폰7의 가능성이 나오는데, MS는 메이져 클라우드 플레이어중 하나이다. CRM,MS Exchanage, SharePoint와 같은 애플리케이션 서비스를 제공하는 Saas. AppFabric과 같은 SOA 를 지원하는 프레임웍,MS-SQL서비스등과 같은 Paas 그리고 Windows Server 가상화,Storage 서비스등을 지원하는 Iaas등 클라우드의 3계층 Saas-Paas-Iaas를 모두 제공한다. 물론 다른 스마트폰 플래폼들도 이 클라우드를 쓸 수 있다. 그러나 MS의 클라우드 기술은 기본적으로 .NET 개발 환경 기반으로 되어 있고, 윈폰7역시 .NET 기반이다. 즉 아주 Smooth한 연동이 가능하다는 것이다.
윈폰7은 단순하게 디바이스에 탑재되는 플랫폼만이 아니라 MS의 클라우드 전략과 연동해서 클라우드 서버와 연동해서 서비스를 제공할 수 있는 모델을 지원한다.
엔터프라이즈 솔루션
일반 사용자 입장이 아닌 기업 사용자의 관점에서 스마트폰 플랫폼을 보면 기업의 업무 시스템과의 연동성이 매우 중요하다. MS는 오피스,MS Exchange 서버, 계정 및 자산 관리 도구인 Active Directory 그리고 Windows Server를 기반으로 구성되는 CRM (Dynamics)등의 여러 엔터프라이즈 솔루션을 가지고 있고, 이런 솔루션들이 자연스럽게 윈폰7과 연동될 수 있는 인프라를 제공하고 있다. 기존의 아이폰이나 안드로이드는 이런 인프라가 없기 때문에 일일이 개발을 해야 하거나 써드 파티 제품을 써야 하기 때문에 기업 애플리케이션 통합이 쉽지 않다. RIM의 블랙베리 같은 경우 오랜 역사를 가지고 있고, Lotus Notes나, MS Exchange와 좋은 통합성을 가지고 있기 때문에 기업 시장에서 좋은 우위를 점유할 수 있었던 것이었는데, 이번 윈폰7이 이러한 장점 역시 같이 커버 함으로써 엔터프라이즈 모바일 스마트폰 시장에서도 높은 가능성을 보여 줄 수 있을 것이라 기대한다.
'프로그래밍 > Windows Phone7' 카테고리의 다른 글
Windows Phone 7의 데이타 저장구조-Isolated Storage 리뷰 (2) | 2010.08.12 |
---|---|
Windows Phone 7의 위치정보(LBS) API 분석 (1) | 2010.08.12 |
제국의 역습 - 윈도우즈폰7의 가능성 (1/2회) (0) | 2010.08.10 |
Windows Phone7의 게임 개발 환경 (XNA) 리뷰 (1) | 2010.08.09 |
Windows Phone 7 에서 Animation 효과주기. (0) | 2010.08.06 |