2010.04.19

개발자 관점에서 본 윈도우 폰 7 vs. 아이폰

John Cox | Network World

윈도우 폰 7을 포함한 윈도우 모바일과 애플 아이폰 애플리케이션까지 모두 아우르는 개발사 오크 리프 웨이스트 매니지먼트(Oak Leaf Waste Management)에서 수석 아키텍처로 일하고 있는 케빈 호프만(Kevin Hoffman)은 최근 모바일과 클라우드 애플리케이션 개발에 집중하고 있다.

 

호프만은 윈도우 폰 7과 아이폰에 대해 "모든 프레임워크는 각자의 장점과 단점을 가지고 있다"라면서,  "어느 한 쪽이 다른 쪽보다 더 낫다고 단적으로 말할 수 없다. 따져보고 판단해야 한다”한다고 이야기 한다.

 

윈도우 개발에 대한 폭넓은 배경 지식을 가지고 The Net Addict’s Blog를 통해 윈도우 폰 7 개발 경험을 기술하고 있는 그는 WPF [Windows Presentation Foundation] Control Development Unleashed를 포함하여 몇 권의 책을 공동 집필하기도 했다.  아마존 웹 사이트에는 호프만에 대한 페이지가 따로 있을 정도로 유명하다.

 

최근까지 Sys-Con의 아이폰 개발자 저널(iPhone Developer's Journal) 편집장을 역임했으며, 외주를 받아 아이폰 애플리케이션을 만들고 있다. 그는 애플의 WWDC(Worldwide Developer Conference)에서 아이폰과 마이크로소프트 .NET 콤팩트 프레임워크(Compact Framework) 간의 프로그래밍 차이점에 대해서 발표한 바 있다.

 

호프만과의 인터뷰를 통해서 윈도우 폰 7(WP7)에 대한 그의 느낌과 WP7 플랫폼과 아이폰 간의 같은 점과 다른 점에 대해 알아보았다.

 

AP6D76.JPG경험에 비추어 볼 때, WP7은 아이폰에 필적할 만한가?

고급 모바일 애플리케이션 시장에서, 지금까지는 아이폰이 시장을 독점해오고 있다. 애플리케이션을 위한 타깃 디바이스를 선택해야 한다면, 가장 사용자가 많은 기기를 선택한다. 아이폰이 바로 그것이었다.

 

이제 마이크로소프트는 아이폰이 하는 모든 것을 하고 심지어는 아이폰에도 없는 기능을 갖춘 디바이스(혹은 플랫폼)를 들고 이 시장에 진출했다.

 

하지만 순수 개발자의 관점에서 보면, 일반적으로, 특히 모바일 개발에 처음인 개발자들에게는 윈도우 폰에서 애플리케이션을 만드는 것이 더 쉽다.

 

그 이유는?

아이폰이 윈도우 폰 7에 비해 더 시스템 지향적인 개발 환경이라는 이유가 크다. 예를 들면, 아이폰에서는 메모리 관리를 해주지 않지만, WP7에서는 메모리 관리를 해준다. 그래서 근본적으로 고장 횟수가 더 적어서, 개발자들이 메모리 유출(Leak)을 따라다니기 보다는 애플리케이션을 개발자가 의도하는 대로 작동하도록 만드는 작업에 더 많은 시간을 할애할 수 있다.

 

마이크로소프트의 쌍방향 웹 애플리케이션 환경인 실버라이트(Silverlight)와 윈도우와 엑스박스(Xbox)용 게임개발을 위한 XNA, 그리고 포토샵(Photoshop)이나 일러스트레이터(Illustrator)에서 직접 가져오기를 할 수 있는 마이크로소프트 툴이 포함된 이 모든 가용 애플리케이션 설계 도구들 덕분에 개발자들은 바로 WP7 개발 사이클로 들어갈 수 있다.  아이폰에는 같은 종류의 설계 환경이 없다.

 

전에 지적한 대로, 모든 WP7 애플리케이션은 실버라이트나 XNA 실행 환경에서만 실행시킬 수 있다.  이 방식이 어떤 이점이 있는가?

XNA 환경에서는, 엑스박스 게임을 만들어 본 사람은 누구나 사용법을 이미 알고 있다. 제어 인터페이스와 화면 크기만 빼고는 사용 언어, 도구, 이 모든 것들이 똑같다. 게임 개발자들은 WP7용 애플리케이션을 만들 수 있어서 보유한 기술을 재사용할 수 있을 뿐 아니라 기존에 작성한 엄청난 양의 코드까지도 재사용할 수 있다.

 

실버라이트 역시 기업이나 생산성 소프트웨어 개발자들에게는 매혹적이다. 이전 버전의 운영체제 에서는, 모바일 애플리케이션용 기본 GUI(Default Look and Feel)가 끔찍했었다.  애플리케이션을 보기 좋게 만드는데 많은 노력이 기울여졌다. 하지만 실버라이트에는 설계자가 만든 내용을 받아서 손실 없이 애플리케이션에 삽입시켜주는 툴이 있다. 그리고 만약 개발자가 웹 사이트 상에 실버라이트 애플리케이션을 가지고 있고 같은 애플리케이션을 윈도우 폰 7에서도 구동하고 싶어 한다면, 아주 많은 양의 코드를 재사용 할 수 있으며, 어떤 경우에는 코드 전체를 재사용할 수도 있다.

 

애플은 개발자들의 요구를 받아들여서 아이폰 개발 환경을 구축했다.  마이크로소프트가 승산이 있을까?

내 생각에는 마이크로소프트도 개발 환경 구축에 있어서는 누구에게도 뒤지지 않는다.  내가 WP7 애플리케이션 개발을 위해 마이크로소프트의 비주얼 스튜디오(Visual Studio)를 사용할 수 있다는 사실 자체가 대단한 것이다. 그리고 마이크로소프트의 폰 시뮬레이터(실제 WP7 기기의 GUI를 흉내 내는 PC 애플리케이션)는 애플의 아이폰 시뮬레이터의 기능보다 더 큰 기능성을 갖고 있다.

 

예를 들면?

메시지에 데이터를 송신하기 위한 애플의 PNS(Push Notification Service)의 경우에, 아이폰 시뮬레이터에서는 이 기능이 작동하지 않는다. 애플의 시뮬레이터에서는 비디오를 재생할 수 없다. 하드웨어 가속기도 들어있지 않아서, OpenGL(고성능 그래픽 표준)도 사용할 수 없다.

 

하지만, 마이크로소프트 시뮬레이터에서는 게임을 테스트 할 수 있는데, 마이크로소프트가 제공하는 이 모든 것과 다른 기능들이 전체 개발 작업을 훨씬 더 순조롭게 해준다.

 

WP7의 다른 장점은 무엇인가?

아이폰 애플리케이션에서는, 아주 짧은 시간에 엄청나게 보기 좋은 애플리케이션을 만들 수 있으나 많은 기술을 필요로 한다. 출시와 유통을 포함한 전체 판매 프로세스도 엄청나게 답답하다. 온갖 종류의 장애물이 산재해 있고 특히 대형 개발팀에게는 프로세스 속도를 저하시키는 모든 것들이 존재한다.

 

아직 초기 단계이긴 하지만 내가 아는 한, 마이크로소프트의 애플리케이션 유통 방식은 훨씬 더 쉽다. 마이크로소프트는 제품 발표 경로에 대한 MIX10 세션(Session)을 개최했다.  마이크로소프트가 그대로만 해준다면, 현재 아이폰 라이프사이클에서 볼 수 있는 엄청나게 많은 수의 단계를 줄일 수 있다.

 

WP7에 대한 "감"은?

UI 데모 동영상을 처음 봤을 때는, 별다른 느낌이 없었다. 하지만, 여기저기 뒤져보고 함께 얼마나 잘 작동하는지를 살펴보면, 실제로 사람들에게 충격을 주는 것은 UI가 없다는 사실이다. 마이크로소프트는 지금까지 정보를 과대 포장하고 애플리케이션을 휘황찬란하고 쓸데없는 부가기능으로 치장해 왔다. WP7에서는 이 모든 것을 벗어버리고 정보 그 자체를 가능하면 멋지게 만들었다. 그들의 철학은 애플리케이션과 정보 자체가 설계이다 ? 이것들이 UI다.

 

이 UI에 대한 코드명은 "메트로(Metro)"였다. 그들은 "도시의 간판"에서 영감을 얻었다고 한다. 간판은 중간의 허튼소리를 가급적 배제하여, 가능하면 빠른 시간에 정보를 제공함으로써 가능하면 빨리 원하는 곳에 도착할 수 있게 해준다. jcox@nww.com



2010.04.19

개발자 관점에서 본 윈도우 폰 7 vs. 아이폰

John Cox | Network World

윈도우 폰 7을 포함한 윈도우 모바일과 애플 아이폰 애플리케이션까지 모두 아우르는 개발사 오크 리프 웨이스트 매니지먼트(Oak Leaf Waste Management)에서 수석 아키텍처로 일하고 있는 케빈 호프만(Kevin Hoffman)은 최근 모바일과 클라우드 애플리케이션 개발에 집중하고 있다.

 

호프만은 윈도우 폰 7과 아이폰에 대해 "모든 프레임워크는 각자의 장점과 단점을 가지고 있다"라면서,  "어느 한 쪽이 다른 쪽보다 더 낫다고 단적으로 말할 수 없다. 따져보고 판단해야 한다”한다고 이야기 한다.

 

윈도우 개발에 대한 폭넓은 배경 지식을 가지고 The Net Addict’s Blog를 통해 윈도우 폰 7 개발 경험을 기술하고 있는 그는 WPF [Windows Presentation Foundation] Control Development Unleashed를 포함하여 몇 권의 책을 공동 집필하기도 했다.  아마존 웹 사이트에는 호프만에 대한 페이지가 따로 있을 정도로 유명하다.

 

최근까지 Sys-Con의 아이폰 개발자 저널(iPhone Developer's Journal) 편집장을 역임했으며, 외주를 받아 아이폰 애플리케이션을 만들고 있다. 그는 애플의 WWDC(Worldwide Developer Conference)에서 아이폰과 마이크로소프트 .NET 콤팩트 프레임워크(Compact Framework) 간의 프로그래밍 차이점에 대해서 발표한 바 있다.

 

호프만과의 인터뷰를 통해서 윈도우 폰 7(WP7)에 대한 그의 느낌과 WP7 플랫폼과 아이폰 간의 같은 점과 다른 점에 대해 알아보았다.

 

AP6D76.JPG경험에 비추어 볼 때, WP7은 아이폰에 필적할 만한가?

고급 모바일 애플리케이션 시장에서, 지금까지는 아이폰이 시장을 독점해오고 있다. 애플리케이션을 위한 타깃 디바이스를 선택해야 한다면, 가장 사용자가 많은 기기를 선택한다. 아이폰이 바로 그것이었다.

 

이제 마이크로소프트는 아이폰이 하는 모든 것을 하고 심지어는 아이폰에도 없는 기능을 갖춘 디바이스(혹은 플랫폼)를 들고 이 시장에 진출했다.

 

하지만 순수 개발자의 관점에서 보면, 일반적으로, 특히 모바일 개발에 처음인 개발자들에게는 윈도우 폰에서 애플리케이션을 만드는 것이 더 쉽다.

 

그 이유는?

아이폰이 윈도우 폰 7에 비해 더 시스템 지향적인 개발 환경이라는 이유가 크다. 예를 들면, 아이폰에서는 메모리 관리를 해주지 않지만, WP7에서는 메모리 관리를 해준다. 그래서 근본적으로 고장 횟수가 더 적어서, 개발자들이 메모리 유출(Leak)을 따라다니기 보다는 애플리케이션을 개발자가 의도하는 대로 작동하도록 만드는 작업에 더 많은 시간을 할애할 수 있다.

 

마이크로소프트의 쌍방향 웹 애플리케이션 환경인 실버라이트(Silverlight)와 윈도우와 엑스박스(Xbox)용 게임개발을 위한 XNA, 그리고 포토샵(Photoshop)이나 일러스트레이터(Illustrator)에서 직접 가져오기를 할 수 있는 마이크로소프트 툴이 포함된 이 모든 가용 애플리케이션 설계 도구들 덕분에 개발자들은 바로 WP7 개발 사이클로 들어갈 수 있다.  아이폰에는 같은 종류의 설계 환경이 없다.

 

전에 지적한 대로, 모든 WP7 애플리케이션은 실버라이트나 XNA 실행 환경에서만 실행시킬 수 있다.  이 방식이 어떤 이점이 있는가?

XNA 환경에서는, 엑스박스 게임을 만들어 본 사람은 누구나 사용법을 이미 알고 있다. 제어 인터페이스와 화면 크기만 빼고는 사용 언어, 도구, 이 모든 것들이 똑같다. 게임 개발자들은 WP7용 애플리케이션을 만들 수 있어서 보유한 기술을 재사용할 수 있을 뿐 아니라 기존에 작성한 엄청난 양의 코드까지도 재사용할 수 있다.

 

실버라이트 역시 기업이나 생산성 소프트웨어 개발자들에게는 매혹적이다. 이전 버전의 운영체제 에서는, 모바일 애플리케이션용 기본 GUI(Default Look and Feel)가 끔찍했었다.  애플리케이션을 보기 좋게 만드는데 많은 노력이 기울여졌다. 하지만 실버라이트에는 설계자가 만든 내용을 받아서 손실 없이 애플리케이션에 삽입시켜주는 툴이 있다. 그리고 만약 개발자가 웹 사이트 상에 실버라이트 애플리케이션을 가지고 있고 같은 애플리케이션을 윈도우 폰 7에서도 구동하고 싶어 한다면, 아주 많은 양의 코드를 재사용 할 수 있으며, 어떤 경우에는 코드 전체를 재사용할 수도 있다.

 

애플은 개발자들의 요구를 받아들여서 아이폰 개발 환경을 구축했다.  마이크로소프트가 승산이 있을까?

내 생각에는 마이크로소프트도 개발 환경 구축에 있어서는 누구에게도 뒤지지 않는다.  내가 WP7 애플리케이션 개발을 위해 마이크로소프트의 비주얼 스튜디오(Visual Studio)를 사용할 수 있다는 사실 자체가 대단한 것이다. 그리고 마이크로소프트의 폰 시뮬레이터(실제 WP7 기기의 GUI를 흉내 내는 PC 애플리케이션)는 애플의 아이폰 시뮬레이터의 기능보다 더 큰 기능성을 갖고 있다.

 

예를 들면?

메시지에 데이터를 송신하기 위한 애플의 PNS(Push Notification Service)의 경우에, 아이폰 시뮬레이터에서는 이 기능이 작동하지 않는다. 애플의 시뮬레이터에서는 비디오를 재생할 수 없다. 하드웨어 가속기도 들어있지 않아서, OpenGL(고성능 그래픽 표준)도 사용할 수 없다.

 

하지만, 마이크로소프트 시뮬레이터에서는 게임을 테스트 할 수 있는데, 마이크로소프트가 제공하는 이 모든 것과 다른 기능들이 전체 개발 작업을 훨씬 더 순조롭게 해준다.

 

WP7의 다른 장점은 무엇인가?

아이폰 애플리케이션에서는, 아주 짧은 시간에 엄청나게 보기 좋은 애플리케이션을 만들 수 있으나 많은 기술을 필요로 한다. 출시와 유통을 포함한 전체 판매 프로세스도 엄청나게 답답하다. 온갖 종류의 장애물이 산재해 있고 특히 대형 개발팀에게는 프로세스 속도를 저하시키는 모든 것들이 존재한다.

 

아직 초기 단계이긴 하지만 내가 아는 한, 마이크로소프트의 애플리케이션 유통 방식은 훨씬 더 쉽다. 마이크로소프트는 제품 발표 경로에 대한 MIX10 세션(Session)을 개최했다.  마이크로소프트가 그대로만 해준다면, 현재 아이폰 라이프사이클에서 볼 수 있는 엄청나게 많은 수의 단계를 줄일 수 있다.

 

WP7에 대한 "감"은?

UI 데모 동영상을 처음 봤을 때는, 별다른 느낌이 없었다. 하지만, 여기저기 뒤져보고 함께 얼마나 잘 작동하는지를 살펴보면, 실제로 사람들에게 충격을 주는 것은 UI가 없다는 사실이다. 마이크로소프트는 지금까지 정보를 과대 포장하고 애플리케이션을 휘황찬란하고 쓸데없는 부가기능으로 치장해 왔다. WP7에서는 이 모든 것을 벗어버리고 정보 그 자체를 가능하면 멋지게 만들었다. 그들의 철학은 애플리케이션과 정보 자체가 설계이다 ? 이것들이 UI다.

 

이 UI에 대한 코드명은 "메트로(Metro)"였다. 그들은 "도시의 간판"에서 영감을 얻었다고 한다. 간판은 중간의 허튼소리를 가급적 배제하여, 가능하면 빠른 시간에 정보를 제공함으로써 가능하면 빨리 원하는 곳에 도착할 수 있게 해준다. jcox@nww.com



X