-
플랫폼의 안정성을 위해 C#.NET을 선택한 윈도 폰 7. 그런데 그게 발목을 잡는다면?Mobile topics 2011. 2. 18. 13:13반응형* 이 글은 개발자 입장에서 쓴 개인적인 의견임을 먼저 밝혀둔다.
회사에서 야근하는 중에 잠깐 같은 부서의 다른 팀장과 얘기를 나누던 중에 이런 얘기가 나왔다. 개발자 입장에서 아이폰과 안드로이드는 소스를 서로 공유할 수 있는데 윈도 폰 7의 경우에는 완전히 새로 다시 만들어야 한다는 것. 아이폰의 경우 Ansi C/C++을 그대로 사용할 수 있으며 UI 부분만 Objective C를 이용하면 된다. 안드로이드의 경우 Java 기반이라고는 하지만 대부분의 코어 부분은 NDK라고 하는 툴(방법? -.-)을 이용하여 Ansi C/C++을 사용한다. 그게 훨씬 빠르기 때문이다(아직까지 모바일 디바이스에는 퍼포먼스를 생각 안할 수 없다). 그렇기 때문에 중요한 부분의 코드는 서로 공유할 수 있어서 이식성이 좋다.
그런데 윈도 폰 7은 다르다. 윈도 폰 7의 경우 C#.NET이 기본 언어다. 그리고 C/C++은 사용할 수 없다. C#으로 만든 DLL(공유 라이브러리)은 인식하나 C/C++, 혹은 MFC로 만들어진 DLL은 인식을 못한다고 한다(MS 관계자의 얘기). 그렇기 때문에 결국 코어부터 다시 만들어야 하기에 아이폰, 안드로이드 등 모바일 어플리케이션을 전문으로 만드는 개발의 경우 윈도 폰 7 어플리케이션을 만드는 것이 부담이 될 수 있다는 얘기다. 물론 MS에서 윈도 폰 7용으로 코드를 컨버전하는 툴을 제공해준다는 얘기도 있지만 과연 얼마나 효과를 발휘할 것인지에 대해서는 미지수다. 여하튼간에 소스 공유가 안된다는 문제가 모바일 어플리케이션 개발자 입장에서는 부담스럽고 난감하다는 데에 의견이 일치했다. 참고로 나 역시 모바일 어플리케이션 개발자고 같이 대화를 나눈 팀장 역시 모바일 디바이스 프로그래밍을 오랫동안 해오던 숙련된 개발자다.
MS 입장에서는 디바이스의 하위레벨, 메모리, 커널 부분까지 건드리는 불안전한 C/C++ 코드보다는 안정적인 이른바 메니지먼트 언어(Java나 C#과 같은 가상머신이 중간에 있는 언어를 메니지먼트 언어라고 부른다)를 쓰는 것이 모바일 플랫폼의 안정성을 위한 최선의 선택이라고 생각할 것이며 나 역시 그 생각에 동의한다. 하지만 이미 아이폰이나 안드로이드용으로 어플리케이션을 만들던 기업이나 개발자 입장에서 봤을 때 UI 부분은 어쩔 수 없다고 치지만 코어, 엔진 부분까지 새로 만들어야 한다는 부담감은 실로 엄청나게 크다는 것이다. 아이폰과 안드로이드용으로 잘 동작하던 어플리케이션은 윈도 폰 7용으로 만들기 위해서는 아이폰이나 안드로이드용으로 만드는 만큼의, 어쩌면 그 이상의 노력이 필요하게 될지도 모른다는 것이다. 아이폰으로 먼저 만들었다면 엔진만 제대로 잘 C/C++로 만들었다면 안드로이드에서 적용하는 것은 그렇게 많은 노력이 들지 않을 것이다. 이른바 생산성에 문제가 된다는 말이 된다. 만약 코어, 엔진 부분에 업데이트가 있다면 아이폰이나 안드로이드에는 금방 적용되겠지만 윈도 폰 7용으로는 적용이 더디게 진행될 수 밖에 없는 상황이 오게 된다는 말이 된다.
물론 데스크탑용 윈도 어플리케이션을 만들던 개발자의 경우라면 윈도 폰 7용 어플리케이션을 만드는 것이 어렵지는 않을 것이다. 다만 여기에는 조건이 붙는다. MFC로 프로그래밍을 하는 것이 아닌 실버라이트와 C#.NET, WCF, WPF 등의 최신 MS 기술로 프로그래밍을 하던 개발자의 경우에는 윈도 폰 7 프로그래밍으로 넘어가는 것이 손쉬울 것이다(거의 할 일이 없을 정도다). 하지만 아직까지 여전히 윈도 개발자들 중 상당수가 MFC 프로그래밍을 하는 개발자(적어도 내 주변에는 그렇다 -.-)라는 점을 생각한다면 그렇게 미래가 밝은 것만도 아니다.
MS는 OS 플랫폼의 안정성과 개발의 편의성 때문에 C/C++, MFC를 과감히 버리고 C#.NET으로 메인 언어를 옮겼다. 하지만 어쩌면 그 결정으로 인해 스스로의 발목을 잡는 상황이 벌어지고 있지 않은지 하는 생각이 든다. 작년 하반기에 미국에서 출시된 윈도 폰 7이 탑재된 윈도 폰이 생각보다 큰 이슈를 못보여주고 있는 이유 중 하나가 바로 이런 개발자들의 사소한 부담감을 미쳐 살펴보지 못했기 때문이 아닐까 하는 생각을 잠깐 해본다. 나 역시 지금 안드로이드용으로, 아이폰용으로 보안 솔루션을 만들었는데 윈도 폰 7용으로 만들 것을 생각하니 좀 답답한 마음이 드는 것은 이런 이유 때문이 아닐지.
* 이 글은 원래 페이스북에 있는 내 페이지의 노트에 적었던 글인데 노트 편집이 제대로 안되서 그냥 블로그에 옮겨 적는다. 아직까지 페이스북의 노트보다는 난 블로그가 더 편한 듯 싶다.반응형댓글