본문 바로가기

TechLog

WP SDK 7.1의 변경사항: 에뮬레이터

웹캐스트(윈도우폰7 망고 웹 캐스트 - Profiler와 성능 분석을 이용한 고품질 앱 개발) 내용을 정리하는 차원에서 적어보는 포스트. 사실 Windows Phone(이하 WP) SDK 7.1이 나온지 꽤 오래 됐는데도 단순하게 정리해놓은 곳이 없는 것 같다는 생각에 쓰기 시작했습니다 짠짠.

 

새삼 설명할 필요도 없겠지만, 모바일 앱 개발에 있어서 에뮬레이터(혹은 시뮬레이터)는 굉장히 중요한 도구다. 기본적으로 모바일 앱은 스마트폰과 같은 모바일 디바이스에서 실행되지만, 개발 자체는 PC에서 진행되기 때문에 프로그램을 실행해 보기 위한 환경이 필요하게 된다. 직접 모바일 디바이스를 갖추면 좋겠지만, 없을 경우 아쉬운대로 프로그램을 실행해볼 수 있는 환경을 제공해주는 것이 에뮬레이터의 역할이라 할 수 있겠다.

하지만, WP의 에뮬레이터는 이보다 한 발 더 나아가고 있다. WP SDK 7.1에서는 에뮬레이터에 상당히 많은 변경사항이 있는데 – 이는 달리 말하면 WP SDK 7의 에뮬레이터가 그리 특별한 기능이 없었다는 의미도 된다 – 다른 개발 환경과 비교해 보더라도 좋다고 말할 수 있을 정도이다.

하지만 일단은 ‘별 것 아닌 기능’부터 시작해서 하나씩 살펴보도록 하자.

 

 

- H.264 미디어 지원

‘엥? 그럼 WP 7에서는 H.264를 지원 안 했다는 이야기인가?’라고 오해할 수도 있는데, 그렇지는 않다. 다만 WP 7에서는 실제 WP 기기와 WP 에뮬레이터가 지원하는 미디어 형식의 범위가 서로 달랐었다. 케냘 개인적으로도 해괴한 정책이었다고 생각하는 부분인데, 여튼 이제는 에뮬레이터에서도 H.264 미디어(MPEG4 동영상이나 AAC 을 생각하면 된다)를 재생해볼 수 있다.

 

 

- 메모리 모델 개선

이것도 H.264 미디어 지원과 비슷한 맥락이라고 보면 될 것 같은데, 실제 기기에서 memory fragmentation을 처리하는 방식과 에뮬레이터에서의 처리 방식이 비슷하게 변경되었다고 한다. 그 외에 WP 7.5의 운영체제에서도 가비지 콜렉터가 좀 더 최적화되어 내부 성능의 개선이 이루어졌는데, 이 개선이 에뮬레이터에도 동일하게 적용되어 에뮬레이터의 성능도 좀 더 증가하였다.

참고로, 기존 WP 7의 앱을 단순히 WP 7.5 환경에서 실행하기만 해도 성능 향상이 있다. (근데 이건 WP 7.5의 성능 향상이라기보다는 WP 7이 개판이었다는 이야기가 되잖아…)

 

 

- 에뮬레이터에서의 센서 기능 지원

말이 필요 없다. 일단 화면 보자.

 

 

에뮬레이터에서 가속도계와 위치 신호를 직접 제어할 수 있는 옵션을 제공한다. 가속도계는 직관적으로 기기의 방향을 바꿀 수 있는 인터페이스 제공하며, 기기를 흔드는 것과 같은 움직임도 시뮬레이션 할 수 있는 옵션을 제공하고 있다. 위치 신호 기능은 단순히 디바이스가 특정 위치에 있는 것을 지정할 수 있는 것 뿐만이 아니라, 디바이스가 시간의 흐름에 따라 다른 위치로 이동하는 상황을 테스트해볼 수 있는 옵션까지도 제공한다. (참고 : Marble Maze 샘플, WP 7.1 에뮬레이터의 위치 기능 사용하기)

그리고 WP SDK 7.1 정식 버전이 공개되면서 스크린샷 기능이 생겼다. 아니 이런 기능까지! 라고 기뻐하며 캡처 버튼을 누질러 보았더니!

 

… 여 여러분 잠시 여기 보세요 레드썬!!!!!!
(가상 머신에서 이런거 돌려서 그런건지도)

 

그리고 WP SDK 7.1의 에뮬레이터에 추가된 마지막 기능은,
(정확히는 WP SDK 7.1에 추가된 기능이라고 해야겠지만)

 

 

- 프로파일러

WP SDK 7.1에서는 성능 분석 도구가 개발 도구에 통합되었다. 이 성능 분석 도구는 에뮬레이터와도 잘 동작한다. 실제 디바이스와 동작 특성에서 차이가 있을 수는 있겠지만, 프로그램 수행 과정에서 병목 현상을 일으키는 로직을 판별하는 용도로는 제격이다. 게다가 MS의 개발 도구답게 (기능은 많지 않고 무겁지만) 단순하면서도 중요한 기능에 충실하고 있다.

다음 그림과 같이 실행 시간 도중의 특정 시점을 선택하고, 성능 관련 문제가 발생하는 패턴을 분석하여 문제에 접근할 수 있는 방식이다. 지나치게 단순화된 접근 방식이라고 볼 수도 있지만, 보통 성능 문제는 비슷비슷한 패턴으로 일어나는 것이 대부분이니 효과적이라고 평가할 수 있겠다.

 

실제 프로파일러가 어떻게 동작하는지를 살펴보고 싶다면 “Windows Phone 7 앱 시리즈: Profiler와 성능 분석을 이용한 고품질 앱 개발” 웹캐스트를 참고하도록 하자.