Stop! 윈도우 임베디드 CE 시스템 개발

멀티 태스킹을 지원하는 아이폰 OS 4.0 버전, 안드로이드 2.2 운영체제인 Froyo, 팜의 WebOS 등의 모바일 플랫폼이 모바일 운영체제로써 또는 모바일 환경의 경쟁자로써 치열한 각축전을 벌이고 있다. 인터넷이라는 통신 혁명으로 닷컴 붐이 일어난 것처럼, 단순히 모바일 시스템용 운영체제의 경쟁이 아니라 모바일 혁명을 선두를 차지하기 위한 치열한 싸움인 것이다. 이에 따라 새롭게 나타날 윈도우 모바일 운영체제에 대한 내용을 살펴보는 시간을 갖도록 하겠다.

글: 라영호/ ratharn@naver.com

연재순서

01회. 윈도우 임베디드 시스템 테스팅
02회. 부트로더를 통한 개발 준비  
03회. 빌드이야기
04회. 윈도우 임베디드 CE 6.0 커널 이야기 
05회. 디바이스 드라이버 개발
06회. 윈도우 임베디드 시스템 디버깅
07회. 디스플레이 디바이스 드라이버, 윈도우 임베디드 시스템, 3D의 세계로…
08회. 플래시 메모리를 저장 장치로
09회. GPS 디바이스 드라이버의 개발
 10회. 선 없는 세상으로
11회. 멀티미디어 세상속으로 -Ⅰ
12회. 멀티미디어 세상속으로 -Ⅱ

필 / 자 / 소 / 개

필자는 윈도우 모바일 관련 스마트폰 개발과 윈도우CE 관련 장치를 개발하고 있다. 개인적으로 운영하고 있는 윈도우CE에 관한 블로그(www.embeddedce.com)를 통해 윈도우CE 개발에 대한 다양한 생각과 방법론을 함께 생각해 보고자 노력 중이다. 아울러 윈도우CE의 포팅 뿐만 아니라 개발에서부터 최종 제품이 나오기까지 거쳐야 할 다양한 테스트 및 신뢰성 문제에도 관심을 가지고 있다.


윈도우 모바일과 윈도우폰 7

MWC2010(Mobile World Congress)에서 드디어 윈도우폰 7(Windows Phone 7)이 공개가 되었다. 그 동안 많은 루머를 통해 윈도우폰의 모습과 미래에 대해 짐작했지만 그 결과는 예상과는 전혀 다른 모습이었다. 기존의 윈도우 모바일 6의 UI(사용자 인터페이스)를 과감하게 포기하고 새로운 UX 및 개념을 가지고 다가오게 되었다.

과연 새로운 윈도우폰 7이 아이폰과 구글 안드로이드로 운영체제가 변화된 새로운 스마트폰 운영체제 환경에서 새로운 기회를 창조할 것인가? 혹은 실패한 운영체제가 될 것인가를 판단하기는 아직 이르다. 다만 변화는 시작되었으며 마이크로 소프트의 윈도우폰 7은 그 변화의 새로운 중심이 될 것이라는 사실 뿐이다. 지금부터 윈도우폰 7의 변화와 내용에 대해 간략히 살펴보도록 하자.

라이프 인 모션(Life in Motion)이라는 모토를 내세워 "역동적인 삶을 가능케 해 주는 윈도우폰"이라는 인식을 강하게 비추고자 하고 있다. PC와 웹에서 가능했던 것들을 윈도우폰 7에서 그대로 가능하게 해 주고, 소셜 네트워크 서비스(SNS)와 연동, 사용자의 상태와 경험의 실시간 업데이트(Facebook이나 Windows Live), XBOX Live 서비스 이용, PC와 웹 그리고 윈도우폰의 멀티미디어 연동 등 사용자가 쉽고 간편하게 일상생활에서 누리던 경험을 그대로 모바일에서 경험할 수 있도록 한 것이 윈도우폰 7의 주요 기능이라고 하겠다.
 
즉, 사용자들이 윈도우폰을 어떻게 잘 활용하여 사용할 수 있는가에 중점을 맞추어 운영체제 및 사용자 인터페이스가 개발이 되었다는 것이다. 그래서 과감히 지금까지 사용하던 UI를 버리고 새로운 사용자 인터페이스 및 동작 환경을 구성하게 되었다.  

        
                                                      
 그림 1. 다양한 윈도우폰7의 사용자 인터페이스 화면들


윈도우폰 7의 변화

윈도우폰 7의 변화를 살펴본다면 [그림2]와 같이 크게 4가지로 요약할 수 있다. 실버라이트를 이용한 사용자 인터페이스를 만들고, 비주얼 스튜디오를 이용한 개발 환경, 클라우드 서비스를 이용한 웹 기반의 서비스 강화, 응용 프로그램의 개발에서부터 등록 관리를 위한 포털 서비스로 구성된다.


그림 2. 윈도우폰의 주요 특징

하지만 위와 같은 변화를 위해서는 하드웨어에 대한 변화도 요구된다. 윈도우폰 7에서는 이전 윈도우 모바일 운영체제와는 달리 하드웨어에 대한 일정한 제약 사양을 철저히 규정하고 있다. 다시 말하면 기존에 윈도우 모바일 6.5 이전의 운영체제에서는 스크린의 크기나 메모리, 프로세서와 같은 하드웨어 사양에 대해 크게 제한을 두지 않았었다.

이러다 보니 하드웨어 사양에 따라 기능 및 성능이 천차만별이고 궁극적으로는 윈도우 모바일 운영체제에 대한 신뢰성을 잃게 하는 결과를 낳았다. 애플의 아이폰이 단일 하드웨어에 최적화된 운영체제를 만드는 것과 대조적인 결과이다. 따라서 이러한 실수를 피하고자 하드웨어 사항 및 제약조건에 대해 보다 강력하게 규정하고 윈도우폰 7 운영체제가 최적화 될 수 있는 기본 환경을 구성했다고 볼 수 있다.

마이크로소프트사가 하드웨어 개발 회사가 아니기 때문에 취할 수 있는 방법이었다고 볼 수 있다. [그림3]은 마이크로소프트사가 제시한 하드웨어 사양 및 구성 원칙을 보여주는 그림이다.
그림 3. 윈도우폰의 주요 하드웨어 구성 원칙

단일 해상도 및 동일한 터치 및 입력 방법을 통하여 UI의 구성 및 운용에 통일성을 주고 프로세서의 성능 및 그래픽 가속을 위한 GPU를 기본 사양으로 선택하여 실버라이트를 사용한 UI 동작에 문제가 없도록 사양을 규정하고 있다. 또한 최소 프로세서 사양 및 동일한 가용 램을 지원하도록 함으로써 제조사 별로 차이가 있던 하드웨어 스펙을 통일하도록 유도하고 있다.
 
이것은 윈도우폰 7 운영체제가 동작하기에 필요한 최적의 하드웨어 조건을 지정하는 것뿐만 아니라 일정 수준의 하드웨어 통하여 운영체제의 동작을 원활하게 함과 동시에 윈도우폰 7 운영체제가 지원하는 다양한 서비스 및 응용 프로그램의 동작을 무리 없이 하게 하는 목적이 있을 것이다.

현재 윈도우폰 7 운영체제를 지원하는 프로세서는 퀄컴의 스냅드레곤 프로세서 뿐이지만 다양한 프로세서 제조 회사에서 지원을 위한 준비를 하고 있다고 한다.

윈도우폰 7에서 요구하고 있는 하드웨어의 사양을 살펴보면 다음과 같다.

· 4개 이상의 터치 포인트를 탑재한 정전식 방식의 터치 스크린
· A-GPS, 가속센서, 전자 나침반, 주의 조명 센서, 근접 센서
· 500만 화소 이상의 카메라와 플래쉬
· 256MB의 램과 8GB 이상의 내부 저장 공간
· ARM v7 이상의 프로세서
· 800x480 혹은 480x320의 LCD 해상도


위 스펙을 보면 기존에 출시된 스마트 폰보다 고급 사양을 요구하고 있다는 것을 알 수 있다. 현재 출시된 아이폰과 안드로이드를 탑재한 스마트폰의 사양과 비슷하거나 그 보다 상위 버전의 하드웨어 사양일 것이다.

윈도우폰 7의 주요 특징

>> 버라이트와 닷넷 언어를 사용한 개발 환경

윈도우폰 7에서는 실버라이트를 어플리케이션 프레임워크를 사용하고 개발 언어로써 매니지드 코드인 C#을 선택하고 있다. 기존의 윈도우 모바일에서 C/C++을 사용하여 Win32나 MFC를 사용하여 응용 프로그램을 작성하는 것과 큰 대조를 이룬다. 또한 과감히 윈도우 모바일에서 기존까지 사용하던 멀티 테스킹 환경을 포기하고 C/C++를 통한 네이티브 언어로 응용 프로그램 개발까지 지원하고 있지 않다는 것이다.

여기에는 윈도우 모바일 6.5 응용 프로그램과의 하위 호환을 지원하지 않는 것도 포함된다. 지금까지 윈도우 모바일용으로 개발된 많은 응용 프로그램의 사용을 포기한다는 의미이기 때문에 마이크로소프트사의 전략에 대해 의구심을 갖게 되는 점 중의 하나다. 하지만 새로운 모바일 환경을 위해서는 기존의 전략을 과감히 포기하고 새로운 판을 써나가야 한다는 과감한 결정일 것이라는데 힘을 실어주고 싶다.

또한 이는 마이크로소프트사가 추구하는 3 스크린 전략(PC의 윈도우 환경, 인터넷상의 윈도우 라이브 환경, 그리고 윈도우폰 환경)의 주요 사용자 인터페이스 환경(세 가지의 다양한 동작 환경에서 플랫폼에 관계없이 동작할 수 있는 언어는 C#과 실버라이트이기 때문에)으로 실버라이트와 닷넷을 선택했다는 것이다.

여기에 XBOX와 같이 검증되고 성공한 게임 환경까지 아울러 윈도우폰이 모바일 마켓의 주요 시장인 게임 시장의 중요한 경쟁자로써 등장할 수 있게 한다는 것이다. 실버라이트를 사용해 보다 윈도우폰용 응용 프로그램을 화려하고 손쉽게 만들 수 있게 한다는 것이다.

윈도우폰 7의 주요 특징을 살펴본다면 다음과 같다.
 
· 실버라이트를 이용한 XAML/이벤트 기반 응용 프로그램 UI 프레임워크
· 메트로 테마 기반 UI 컨트롤
· HTML/자바스크립트 지원
· XNA 기반 고속 게임 프레임워크 지원
· 다양한 멀티 스크린을 위한 2D, 3D 게임 개발 지원
· XBox 360, 윈도우, Zune 에 이르는 다양한 플랫폼 기술사용


기술적인 사양으로는
 
· 터치 및 하드웨어 버튼 지원(Back, Start, Search 버튼으로 구성)
· 디지털 미디어 캡쳐 및 재생 지원
· LINQ(객체 및 XML) 지원
· 실버라이트 3.0 기반이기는 하지만 폰을 위한  기능이 추가되어 있음
· WCF(Windows Communication Foundation) 지원
· 전화 기능 및 각종 센서 지원


>> 비주얼 스튜디오와 익스프레션 블랜드를 사용한 개발 툴

윈도우폰 7의 개발 환경은 비주얼 스튜디오(Visual Studio) 2010과 익스프세션 블랜드(Expression Blend)를 통하여 개발을 할 수 있다. 물론 게임 개발을 위해서는 XNA 게임 스튜디오 4.0을 통해 개발할 수 가 있지만 이러한 개발 툴은 이전과는 다르게 전부 무료로 배포가 된다. 마이크로 소프트사의 개발 툴에 대한 정책이 대대적으로 바뀌었음을 시사한다.

윈도우폰 7 개발 환경을 구성하기 위해서는 다음과 같은 툴을 설치해야 한다.

· 윈도우폰 디벨로퍼 툴(Windows Phone Developer Tools)
· 익스프레션 블랜드(Expression Blend) 4 베타 버전
· 윈도우폰을 위한 마이크로 소프트 익스프레션 블랜드 애드인 프리뷰 버전
· 윈도우폰을 위한 마이크로 소프트 익스프레션 블랜드 SDK 프리뷰 버전


윈도우폰 디벨로퍼 툴에는 다음과 같은 개발 도구가 포함되어 있다.

· 비주얼 스튜디오 2010 익스프레스 CTP 버전
· 윈도우폰 에뮬레이터 CTP 버전
· 윈도우폰을 위한 실버라이트 CTP 버전
· XNA 4.0 게임 스튜디오 CTP 버전


>> 클라우드 서비스 지원

트위터나 페이스북과 같은 소설 네트워킹 서비스는 현재 스마트폰 환경에서 필수 불가결한 인터넷 서비스 환경이다. 이러한 서비스 환경을 제공하고 쉽게 프로그램을 작성하도록 하기 위해 마이크로소프트사는 Windows Azure라는 클라우드 플랫폼 환경을 통해 접근할 수 있도록 구성하고 있다.

또한 XBOX 라이브와의 연계를 통하여 작업할 수 있도록 구성되었다. 이는 XBOX 게임 플랫폼을 윈도우폰 7 환경에 단순히 포팅 한 것 뿐만 아니라(XBOX의 게임이 윈도우폰 7 환경에 동작하도록 만든 것) XBOX 라이브를 통해 기존의 XBOX360 과의 연계 혹 다른 윈도우폰 7과의 연계를 통한 게임을 만들 수 있도록 지원하는 것을 의미한다. 클라우드 서비스 지원은 다음과 같은 내용을 지원한다.

· 노티피케이션(Notification) 지원
· 위치 기반 서비스 지원
· XBOX 라이브 서비스 지원
· WCF(Windows Communication Foundation) 지원
· SOAP, REST, LINQ 지원

>> 포탈 서비스(Portal Services)

마지막으로 윈도우 모바일 폰 7 응용 프로그램의 개발에서 마켓 플레이스까지 등록에 대한 지원 강화 부분이다. 응용 프로그램의 등록, 검증, 인증, 출시 등과 같은 작업을 일관적으로 처리하며 업데이트 및 관리 프로세스를 일원화 하여 윈도우폰 7용으로 개발된 응용 프로그램의 판매 및 관리를 용이하게 할 수 있도록 한다는 것이다.

>> 윈도우폰 7용 응용 프로그램 개발 방법

 
그림 4. 윈도우폰 개발도구를 이용해 만든 응용 프로그램 동작 화면

비주얼 스튜디오 2010으로 기반으로 구성된 윈도우폰 개발도구를 이용하여 윈도우폰 7용 응용 프로그램을 개발하는 방법은 이전 응용 프로그램 개발 방법과 크게 다르지 않다. 다만 응용 프로그램의 속성을 구성을 설정하는 파일이 XML 형태의 구성 파일로 되어 있고 응용 프로그램의 구조가 C# 언어를 이용하여 작성했다는 것이다.

[그림4]는 XNA를 사용한 윈도우폰 7용 게임 프로그램이 윈도우폰 에뮬레이터에서 동작하는 모습이다. 윈도우폰 7용 응용 프로그램의 개발은 비주얼 스튜디오 2010 프로젝트 생성으로부터 시작하고 응용 프로그램에 대한 기본 속성은 Properties 항목에 있는 WindowsPhone Manifest.XML로부터 시작한다.

이 XML 파일에는 응용 프로그램의 표시 이름 및 아이콘과 같은 기본 속성이 저장되어 있다. 현재 Xna HelloPhone이라는 이름으로 설정되어 있는 XML 설정 파일을 보여 준다.



 
    GameThumbnail.png
   
   
     
   

   
     
       
          GameThumbnail.png
          0
          XnaHelloPhone
       

     
   

 





XNA를 사용하여 윈도우폰용 게임 프로그램은 XNA 클래스를 사용하여 프로그램을 작성하게 된다. Microsoft.Xna. 형태의 클래스가 XNA 형태의 클래스며 프로그램의 소스는 다음과 같다.

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
 
namespace XnaHelloPhone
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        string text = "Hello, Windows Phone!";
        SpriteFont kootenay14;
        Vector2 textPosition;
 
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            graphics.IsFullScreen = true;
            Content.RootDirectory = "Content";
            TargetElapsedTime = TimeSpan.FromSeconds(1 / 30.0);
        }
 
        protected override void Initialize()
        {
            base.Initialize();
        }



TimeSpan.FromSeconds(1 / 30.0) 함수를 사용하여 1초에 30번씩 화면 업데이트가 되도록 구성하고 있으며, 각 화면에 대한 그래픽 업데이트는 Draw() 함수를 사용하여 구성하고 있다. 또한 spriteBatch.Begin()과 SpriteBatch.End()사이에 처리할 그래픽 내용들을 구성하도록 구조가 되어 있다.

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.Navy);
 
            spriteBatch.Begin();
            spriteBatch.DrawString(kootenay14, text, textPosition, Color.White);
            spriteBatch.End();
 
            base.Draw(gameTime);
        }




>> 윈도우폰 7과 윈도우 임베디드 CE 7.0 운영체제

윈도우폰 7 운영체제는 임베디드 CE 7.0 운영체제를 기반으로 구성될 운영체제로 예상된다. 또한 윈도우 임베디드 CE 7.0 운영체제는 윈도우 임베디드 컴팩트라는 새로운 이름으로 명명되었다.

현재 일부 개발자 및 업체들에게 개발 툴 및 운영체제를 구성하기 위한 플랫폼 빌드가 릴리스 된 상태다. 공식적으로 발표된 윈도우 임베디드 CE 7.0의 기능을 살펴보면 다음과 같다.



그림 5.윈도우 임베디드 컴팩트 버전의 주요 기능

주요 기능

·듀얼 코어 지원(SMP, ARMv6) : 다중코어 및 ARMv6 아키텍처를 지원할 수 있도록 구성
·WIFI 위치 추적 시스템 : WIFI를 통하여 위치 정보를 추적하는 기능이 추가
·블루투스 2.1
·CellCore : 윈도우 모바일에서 사용하는 전화 관련 기능을 이용할 수 있도록 기능이 향상
·DLNA(Digital Living Network Alliance) : 홈 네트워킹에 관한 기능이 추가
·DRM(Digital Right Management)
·Media Transfer Protocol
·IE7 Rendering Rich Media Plug-in
·NDIS 6.1 지원
·UX C++ XAML API : 실버라이트를 통한 UI 구성 기능 강화
·터치 입력 지원

또한, 윈도우 임베디드 CE 6.0의 경우 비주얼 스튜디오 2005 버전에서 플랫폼 빌더를 설치하고 개발 했지만 7.0 버전의 경우 비주얼 스튜디오 2008에서 개발 할 수 있도록 환경이 제공된다.

끝으로

윈도우폰 7은 아직 출시가 되지 않았고 출시될 제품이다. 또한 윈도우폰 운영체제 역시 최종 출시일까지 계속 개선되고 다듬어질 운영체제이다. 기존 호환성까지 포기를 하면서 만들기까지에는 치열한 스마트 폰 운영체제 시장에서 승부수를 던지고자 하는 그들만의 고뇌일 수 있다.

국내에 아이폰이 처음 나왔을 때 모든 사람이 반기거나 환호하지는 않았지만 스마트폰에 대한 개념을 바꾸어 놨다. 윈도우폰 7 이 다시 세상에 나올 때는 스마트 폰 시장에서 이미 늦었을지도 혹은 섣부른 판단으로 잘못된 운영체제가 될 수도 있다. 하지만 스마트폰 및 스마트폰을 통한 인터넷(혹은 연결된) 세상을 만드는 새로운 계기가 되는 기회가 될 것이라고 예상하고 싶다. 

 
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지