모바일 컨텐츠 이야기


모바일 개발자의 고민, 플랫폼 선택


모바일 플랫폼은 이미 한치 앞을 예상할 수 없는 전쟁터이다. 이런 상황에서 연초부터 Sun의 JavaFX Mobile OS, Palm의 Palm® webOS™가 새롭게 등장하면서 더욱 복잡한 상황이 연출되고 있다. 연구 개발해야할 것도 많아지고 있으며, 시장의 흐름 또한 더욱 민감하게 주시해야 한다.

Application을 개발하는 입장에서 타인과 자신으로부터 '어떤 플랫폼을 선택해야 하는지' 끊임없는 질문을 받고 있다. 과연 어떤 플랫폼을 선택해야 효과적인 것일까? 이번 포스팅에서는 다소 원론적인 이야기를 해보고자 한다. 원론적인 이야기일 수 밖에 없는 이유는 제품의 성격, 조직 문화에 따라서 전혀 다른 결론이 나올 수 있기 때문이다. 아래 이야기는 Application 개발자 입장에서 보는 일반적인 관점이라는 것을 염두해 주기를 바란다.


실질적인 마켓크기를 고려해야

사용자 삽입 이미지

흔히 플랫폼의 시장 크기(Market Size)를 단말수와 비례해서 생각하는 경우가 많지만 매우 위험한 생각이다. 위 그림은 각 플랫폼별로 개략적인 누적 판매수이다. Nokia의 S60 플랫폼이 가장 많이 시장에 팔려있다. 그렇다면 Application Developer의 입장에서 저 수치 그대로를 시장 크기라고 판단할 것인가?

사용자 삽입 이미지

시장 크기는 단말 판매량, Data 정액 사용자, Application에 대한 인지도, 유통 채널등이 모두 고려되어야 한다. 그리고, Global 시장을 타겟으로 하는지, Local Market만을 고려하는지에 따라서 수치는 전혀 다르다. huikea.com의 한 보고서에서는 단말 판매량, Data 정액제 가입 비율, 어플리케이션 인지율을 통해서 실제 시장 크기를 계산하였는데, 그중 가장 대표적인 iPhone과 S60을 비교한 내용을 재구성하여 소개한다.

사용자 삽입 이미지

Application Developer 입장에서 보면 시장에 100M 팔린 S60 보다 10M 팔린 iPhone의 크기가 더 크다는 것이다. 위 보고서에 언급되지 않은 요소인 유통 채널의 다양함, 그리고 LCD 크기의 일관성(LCD 해상도가 다양하면 개발 비용이 증가한다.) 등을 고려하면 현재로서는 iPhone 시장이 가장 크다고 해도 과언이 아니다.


Cross Platform에도 관심을

Mobile Platform은 위와 같은 Low level Platform만 존재하는 것이 아니다. Low level platform위에서 작동하는 Cross Platform들이 있다. Flash Lite는 현재 S60과 Windows Mobile 일부에 탑재가 되어 있고, Platform에서 지원하지 않아도 일부 풀브라우저에서 지원하여 Flash가 플레이된다. Flash Lite는 PC 환경과 유사하고, 네트워크와 다운로드 등도 지원하여 간단한 Application이라면 Flash Lite로 충분히 개발할 수 있다.

요즘은 관심사에서 멀어지고 있는 J2ME도 아직은 무시하지 말자. S60과 Blackberry는 기본적으로 J2ME를 탑재하고 있고, Sun의 J2ME와는 약간 다르지만 Android도 Java 기반이다. 다른 플랫폼들이 스마트폰 위에서만 작동되는 것과는 달리 J2ME는 일반폰위에서도 작동이 된다는 것도 플랫폼 전쟁터에서 잊고 있던 상식이다. 가장 큰 시장인 iPhone이 성능 이슈로 인해 Virtual Machine을 포팅하지 않은 것이 아쉬울 뿐이다. 대략적으로 J2ME가 포팅된 누적단말은 1B으로 이야기 되고 있다.

가장 확실한 Cross Platform은 Web 이다. Web만큼 발전되고 독립적인 Platform은 없다. 어디에서나 브라우저만 있으면 Web Application이 작동한다. 이미 'Mobile Native App와 Web App 비교'에서 Web App의 특징을 설명한 적이 있으니 개발하려는 제품이 어디에 적합한지 참고하기 바란다.

Web App의 가장 큰 단점은 Local Resource에 대한 접근을 못한다는 것인데 일부 풀브라우저들은 Ajax나 Dynamic Menu와 같은 기술을 이용해서 Local Resource 접근을 지원하고 있다. 위와 같이 Native App과의 차이가 점점 없어지는 추세이다. Native App과 Web App의 중간이 되는 Web Runtimes App(위젯이 가장 대표적인 예이다.)도 있으니 개발하고자 하는 Application의 특징에 맞추어 선택을 해야 한다.

사용자 삽입 이미지


플랫폼 독립적인 아키텍쳐의 설계가 중요

지금은 플랫폼을 선택할 때가 아니다. 국내만 보아도 Windows Mobile 외의 플랫폼이 이제야 도입되는 시기인 만큼 추이를 지켜보아야 할 필요가 있다. 현재 필요한 것은 다양한 플랫폼에 이식이 가능한 개발 설계를 해야 하는 것이다. 개발의 측면에서 몇가지 주요한 내용을 정리하자면 아래와 같다.

첫째, Core, Library, Application Layer를 명확하게 구분해야 한다.
Objective-C를 고려해야 하면서 Core를 독립적으로 개발하는 것이 예전보다 더 까다로워 지고 있다. 제품의 질이 다소 떨어지더라도 하나의 플랫폼에서만 사용될 수 있는 개발 패턴은 지양하도록 하자.

둘째, 자료구조는 Core 안에 포함시켜야 한다.
가장 기본적인 String, Date, Time과 같은 Data Type은 자체 구현해주어야 한다. 각 Data Type은 플랫폼 내의 Data Type과 서로 Convert 될 수 있도록 Adaptor가 필요하다. Data Type 이외에 Linked List, Stack과 같은 자료구조도 내장하도록 하자. License에 자유로운 Open Source를 이용하는 것도 좋다.

셋째, 플랫폼에 의존적인 함수는 peer 함수로 구현하게끔 한다.
대표적인 peer 함수는 File IO, Network API, Font API 등이다. 각 플랫폼별로 implement 하게끔 구조를 만들어야 한다. 해당하는 함수들은 모두 Abstract Layer로 선언되어야 한다.


플랫폼보다 중요한 것은 Business를 만드는 것

제품을 개발하기 전에 Platform을 선택하는 것은 어리석은 짓이다. Platform 선택보다 중요한 것은 '어떤 제품(Business)을 개발하는 것이냐'이다. 시장이 어떤 제품을 원하느냐, 그리고 새롭게 적용할 수 있는 기술이 무엇인지를 먼저 고민하고 결정하라. 그 외에 이통사와 제휴를 하거나 Platform별로 이루어지는 Challenge와 같은 기회요인이 있는지 검토를 해보아야 한다.

이런 기본적인 결정이 끝난 후에 제반 사항이 가장 맞는 단말과 플랫폼을 선정해야 한다. 어떤 플랫폼이 다양한 API와 매쉬업 서비스, 그리고 오픈 마켓을 제공한다고 무턱대고 해당 플랫폼을 선택하는 우를 범하지 않기를 바란다.

사용자 삽입 이미지

2009/01/13 08:13 2009/01/13 08:13
top

  1. artist 2009/01/13 11:15 PERM. MOD/DEL REPLY

    멋진글인데요! 많이 배워가겠습니다.

    mobizen 2009/01/13 12:20 PERM MOD/DEL

    배워가기는요~ 모두 아는 내용을 정리만 해본겁니다. ^^

  2. 코원IM 2009/01/13 12:23 PERM. MOD/DEL REPLY

    좋은 글 잘 봤습니다. 항상 많이 배워갑니다.

    mobizen 2009/01/13 16:59 PERM MOD/DEL

    리플 감사합니다. ^^

  3. LieBe 2009/01/15 11:02 PERM. MOD/DEL REPLY

    많이 배워 갑니다.....ㅜㅜ

    mobizen 2009/01/15 11:13 PERM MOD/DEL

    배워 가기는요.. ^^

  4. Teemu Kurppa 2009/01/15 16:03 PERM. MOD/DEL REPLY

    Hi, I found your post as it referred to our site huikea.com and I looked it with great interest. Google Translate helped a bit to understand, thanks for the post.

    For those of you who understand English, original slides are available here: http://dirtyaura.org/blog/2008/11/25/platform-stage-how-to-choose-a-mobile-development-platform/.

    Best regards,
    Teemu Kurppa
    Co-Founder of Huikea

    mobizen 2009/01/16 02:33 PERM MOD/DEL

    Thanks for your visiting and comment. I've already gotten the slide and really like your idea. I will visit your blog and keep watching it.

    BR

  5. 저스틴 2009/01/19 18:46 PERM. MOD/DEL REPLY

    참 큰 공부가 됩니다. 글 감사합니다.

  6. reserve 2009/01/20 08:52 PERM. MOD/DEL REPLY

    좋은 글 항상 감사하며 읽고 있습니다. ^^

  7. 아리 2009/01/29 16:07 PERM. MOD/DEL REPLY

    저 다양한 플랫폼 어플리케이션 개발할때도 무지 무지 고민된답니다.

  8. 싱싱싱 2009/02/07 13:15 PERM. MOD/DEL REPLY

    좋은 글 언제나 고맙습니다.
    오늘도 많이 배우고 갑니다.

    mobizen 2009/02/07 20:23 PERM MOD/DEL

    배우다니요.. 다 아는 이야기인데요.. ^^ 저야 말로 리플 감사합니다.

 

MWC 2008에서 찍은 모바일 플래쉬 UI


mobizen은 직접 가지는 못했지만 직장 동료가 MWC 에 참석을 했다. 이번 MWC는 미디어에 관심이 작년과 달리 높아서 굳이 소식을 전달하거나 정리할 필요가 없을 정도이다. MWC에 대한 정리는 고수들이 정리해 놓으신 자료를 참고하고, 동료가 찍어온 동영상 중에서 N95 위에서 돌아가는 모바일 Flash UI가 마음에 들어 소개를 한다. N95가 워낙에 여기저기서 사용되어서 폰에 대한 소개 동영상은 아니고 전체 UI를 플래쉬로 만들었는데 상당히 동적인 느낌으로 잘 되어 있고 속도 또한 빠르니 그 점을 중점으로 보면 될 듯 하다.



2008/02/22 18:07 2008/02/22 18:07
top

  1. 앗싸뵹 2008/02/25 09:28 PERM. MOD/DEL REPLY

    어느 Depth까지 Flash로 구현된 것인가요?
    일단 대기화면에서 플래쉬 기반 위젯이 동작하고, Entry Menu 까지는 알겠는데,
    더 세세한 부분은 어디까지 적용되었는지 궁금하네요

    mobizen 2008/02/25 15:42 PERM MOD/DEL

    안녕하세요. 앗싸뵹님.
    플래쉬를 UI로 채택하는 시도는 여러차레 있었죠. 다른 기능에 비해 상대적으로 UI에 목숨을 거는 국내 기업들이 최선두에 있었구요. 이 이슈는 사실 하드웨어 성능의 문제가 되어서 상용화를 하지 못했던 것인데 요 근래에는 꽤나 쾌적한 환경을 제공해주는 것 같습니다.

    일반적으로 플래쉬UI 이면 어플리케이션이 호출되기전까지를 전부 말하고 어플리케이션에서도 일부를 플래쉬를 사용할 수 있게끔 하는 것인데요 위 동영상은 전부 플래쉬 파일을 실행하는 것을 찍은 것이니 동영상에 한해서 답변을 드린다면 전체가 플래쉬라고 이해하시면 될 것 같습니다. 중간중간에 플래쉬 목록은 UI 샘플로 제공하는 것입니다. 일반론적인 질문에 대한 답변은 이미 아시고 있을 것 같아서 이렇게 답변을 드립니다.