지난 3월에 Las Vegas에서 있었던 MIX10 컨퍼런스(http://live.visitmix.com/)에서 화두는 그동안 베일에 가려져 있던 Windows Phone 7에 대한 것이었습니다. 그 만큼이나 Windows Phone 7 App 개발에 대한 많은 세션이 진행되었고 참석자들의 관심도 매우 많았다고 합니다.

실제 제품은 빠르면 북미 시장에 올해 가을 정도에 출시될 것으로 보입니다. MIX10 행사장에서는 3개의 prototype 단말기가 선보였다고 하죠.

Windows Phone 7은 시작화면부터 현재 6.5 버전까지 나와있는 Windows Mobile과 전혀 다릅니다. 기존의 Windows Mobile이 Windows PC 환경을 모바일 장치에서 구현하려는 컨셉이었던 것에 반해 Windows Phone 7은 일반 사용자에게 친숙하게 개발하기 위해 출발점부터 다르게 시작했다고 할 수 있습니다.

기존 Windows Mobile과의 하위 호환성을 과감히 버리면서 까지 full change를 하게 된 것은 아이폰의 보급화에 따른 IT 환경의 변화, 사용자들의 요구사항이 변화한 것을 기존의 Windows Mobile 컨셉으로는 더 이상 충족시킬 수 없다는 위기감을 느꼈기 때문이라고 생각됩니다.

image

[그림] Windows Phone 7의 시작 화면

운영체제의 변경과 함께 Windows Phone 7에서 실행되는 애플리케이션의 환경도 완전히 달라졌습니다. 가장 큰 특징은 Managed Code만 실행된다는 것입니다. 즉, Windows Phone 7용 애플리케이션을 개발하려면 VC++과 같은 unmanaged code가 아니라 C#과 같은 managed code를 이용해서 작성해야 한다는 의미입니다.

현재 CTP 버전으로 공개된 Visual Studio 2010 CTP for Windows Phone이나 Expression Blend Beta 4에서는 C# 언어만 지원하고 있습니다. 향후에는 VB.NET 과 같은 다른 .NET 언어도 지원될 것으로 예상됩니다.

Windows Phone 7용 애플리케이션은 다음과 같이 Silverlight과 XNA라는 큰 두 개의 축으로 구분됩니다.

image

[그림] Windows Phone App Platform

Application을 개발하려면 이 둘 중에서 어떠한 기술을 이용해서 개발할 것인지를 먼저 선택해야 합니다. 이 둘은 다음과 같은 차이점을 가지고 있습니다.

Silverlight – 일반 애플리케이션을 위한 개발 모델. 기존에 Win Form application을 개발하는 방법과 동일하게 개발이 가능합니다. Windows Phone App을 위해 제공되는 기본 컨트롤(TextBox, Button, ProgressBar 등)을 이용해서 빠른 개발이 가능하며, Event Driven 방식으로 동작합니다.

XNA - XBOX와 Windows 게임 개발을 위한 플랫폼입니다. 기존의 DirectX를 이용한 개발 방법의 연장선에 있습니다. Silverlight이 event driven 방식이라면, XNA는 화면 frame에 기반한 개발방법입니다. 즉 예를 들어 30fps라면 1초에 30장의 이미지가 연속적으로 보여지는 것을 의미하는데, XNA는 각 시점에 보여질 프레임 이미지를 직접 구성할 수 있습니다.

즉, 일반 애플리케이션을 개발하려면 Silverlight을 이용해서 개발하고, 게임 개발을 하려면 XNA를 이용하시면 됩니다.

기존에 WPF나 Silverlight 개발에 익숙하신 분들은 바로 Windows Phone 7 애플리케이션 개발을 시작하실 수 있습니다. XNA를 이용해서 게임 개발을 하셨던 분들도 Windows Phone 7 게임을 만드시는데 어려움이 없을 겁니다.

현재 IT 업계들이 각자 3 스크린 모델(TV, PC, Mobile에서 모두 동일한 사용자 경험을 제공)을 구축하려고 노력하고 있습니다. Windows Phone 7에서 Silverlight과 XNA를 중심 축으로 선택했다는 것은 향후 TV와 PC 환경에서도 동일한 방향으로 나아가지 않을까라고 조심스럽게 예상 해볼 수 있습니다.

Posted by noenemy

댓글을 달아 주세요