지난주 목, 금 이틀간 kmobile 에서 주최한 '월드와이드 모바일 OS & App. 콘퍼런스' (kmobile 쪽 제목 그대로) 를 다녀왔습니다.
우선 가기 전에 걱정했던 것과 같이 발표자나 발표내용이 바뀌는 등의 일은 없었습니다. 물론 한 세션의 발표 순서가 바뀌고, 심비안쪽 세션 발표자 중 한분이 발표도중 건강을 이유로 발표를 중단해 버리는 사태가 있긴 했지만요.
기획자, 모바일 app개발자, 단말개발사의 개발자 등등 다양한 분야의 사람들이 왔더군요. 그만큼 정확한 컨퍼런스의 타겟팅이 되지 않았던 것 같고, 실제로 발표내용도 보면 전체적인 모바일 플랫폼의 변화와 대응과 같은 비즈니스 전략적인 부분부터 해서 iPhone 이나 Android 의 app개발 관련 내용, 그리고 밑바닥 개발이라 할 수 있는 OS 구조/ 커널 구조 등에 대한 내용까지 여러가지 분야가 짬뽕이 되어 있었습니다.
저는 사실 국내에 거의 소개되지도 않은 심비안에 대해서는 처음부터 큰 관심도 없었지만 첫 세션 발표하시던 분이 발표도중 건강상의 이유로 발표를 중단해버리는 바람에 그 다음부터는 정신줄 놓고 그냥 있었습니다. 회사에서 심비안쪽 개발을 할 기회가 있을지도 모르겠지만, 배표된 발표자료를 100% 그대로 읽으셨기 때문에 발표자료만 있어도 충분하지 않았을까 싶습니다.
아무튼 그날 컨퍼런스에 참석했던 많은 분들의 관심사는 iPhone 과 Android 가 아니었나 싶은데, 전반적인 내용들은 대충 아시리라 생각하고 컨퍼런스에서 들은 내용중 개발과 관련해서 기억에 남을만한 것들 몇개만 소개하고자 합니다. 제가 몰랐던 내용들이고, 계속 몰랐더라면 언젠가는 실컷 app 다 개발해 놓고 어? 이거 왜 app store 에 등록이 안되지? 라며 후회했을지도 모를 항목들입니다. ( + 내용검증을 위해 구글링을 하다가 추가 / 변경된 내용들도 있습니다 )
1. iPhone
SDK Limitation
iPhone 은 다음과 같은 iPhone SDK상의 문제가 있습니다.
NDA
iPhone SDK 는 아직까지 NDA(non-disclosure argeements) 상태입니다. iPhone/iPod Touch 를 개발하기 위해 SDK를 무료로 받아 사용할 수 있지만 그 내용에 대해서 책을 쓸 수도, 강의를 할 수도, 발표를 할 수도 없다고 하는군요.
물론 대부분의 내용이 기존 Mac OS 와 동일한 개발환경에 Cocoa 를 쓰기 때문에 Mac OS Cocoa 내용을 설명하는 것이 iPhone SDK를 설명하는 것과 거의 동일하겠지만, 아무튼 이 부분은 아직 NDA 상태라고 합니다. 발표 당일에도 이 제약조건 때문에 iPhone SDK 자체의 발표를 하는 것이 아니라 Cocoa 를 설명하는 쪽으로 발표를 우회하여 진행하더군요.
발표자 이야기로는 며칠 전에 Apple 에서 연락이 와서 iPhone SDK 관련 발표를 하지말라고 요청해왔다고 하는데... iPhone SDK 오픈전이라면 모를까 이미 발표까지 하고 무료로 SDK도 제공하는 마당에 NDA를 유지할 필요가 있나 싶군요. 이미지는 http://www.qts.co.kr/2588 에서 가져왔습니다.
보안 이슈
iPhone SDK 로 background proccess 로 돌아가는 프로그램을 만들어 실행시키는 것이 불가능하다고 합니다. 자동업데이트 데몬이라든지 이런거 안되고 무조건 그 프로그램을 '실행' 시켰을때만 뭔가를 처리할 수가 있다는 뜻입니다.
더불어 sandbox design 때문에 프로그램 A가 저장한 데이터를 프로그램 B가 이용할 수 없습니다. mp3를 다운로드 받는 프로그램이 있어 이를 이용해서 mp3를 저장했다 하더라도 다른 프로그램에서는 접근이 안됩니다. ( jailbreak 를 통해서 이러쿵저러쿵 쓸 수 있는 방법은 있는듯 합니다 )
같은 이유로 iPhone 에는 공식적으로는 copy & paste 가 되지 않는다고 합니다. 프로그램 A 의 내용을 copy 해서 프로그램 B 에다가 paste 할 수가 없다는 것이지요. OpenClip 같은 프로그램이 iPhone 2.0에서 돌아가긴 하지만 이것도 apple 이 보안정책을 완료하지 않아서라는군요.
정책 이슈
iPhone SDK의 정책상 GPS 관련 app 나 VoIP app 를 만들 수 없습니다. iPhone 에다가 VoIP app를 깔아서 skype 를 이용하겠다는 원대한 꿈은 한동안은 불가능하겠군요.
아마도 이동통신사와 충돌하지 않고 단말을 보급하기 위한 apple 의 전략이 아닐까라고 생각합니다만...
스마트폰에서 skype 같은걸로 VoIP를 쓰겠다는 분은 skype app 등이 가능한 MS mobile OS를 채택하는 스마트폰을 구입하는게 현명하겠습니다.
2. Android
Android 는 후발주자이니만큼, 그리고 Apple 처럼 iPhone / iPod Touch 라는 하드웨어를 팔아먹는 회사가 아니기 때문에 좀 더 app 개발시 선택의 폭이 넓습니다.
그리고 PC와의 유선 sync 라는 기능 자체가 없습니다. 기존에 스마트폰 사용자라면 약간 의아하거나 불편을 느끼 실 수 있을텐데(특히 MS의 ActiveSync 같은 걸 좋아하시는 분들), 그럴 수 밖에 없는게 구글은 MS와 달리 동기화해야 하는 desktop app 가 없죠. 구글의 모든 app 들 ( gmail / google talk / calendar / note ... ) 은 '웹' 이고 Wi-Fi 로 인터넷에만 연결이 될 수 있으면 애초부터 '동기화' 따위가 필요가 없습니다... 라기보다는 애초에 sync 한다라는 개념이 없는거죠. ( 피카사 같은 게 있긴 있군요 -_-;; )
완벽한 WiBRO/WiMax, 기타 유비쿼터스 시대가 될 때까지는 근처에 WiFi 가 안잡히는 지역으로 이동할 때를 대비해서 Windy31 같은걸 항상 들고 다녀야 할지도 모르겠습니다. ㅋ
GPS app 의 개발에 대한 제약사항도 없고 위치데이터의 사용도 자유롭습니다... 라기 보다는 GPS 와 위치정보, 그리고 구글맵과의 연동기능이 사실 Android 의 가장 큰 장점 중의 하나가 아닐까 싶군요.
안드로이드 개발자 1차대회때 입상작 중 하나가 MIT학생들이 만든 Locale 이라는 app 인데, 이 녀석은 Google Map 과 연동해서 자신이 돌아다니는 지역 중 특정 지역을 선택해서 그 지역에서 벨소리는 어떻게 할 것인지, 통화음의 크기는 어떻게 할 것인지 등을 지정할 수 있습니다. 위치기반 단말환경 설정 app 라고 해야할까요?
http://www.androidlocale.com/
그 외 SMS 수신/전화번호부 등을 app 에서 마음대로 사용할 수 있고, 이미 기존에 설치된 app 라도 다른 것으로 대체될 수 있습니다. 위치 갱신 이벤트도 발생하고 app 간의 데이터 교환도 가능하며 app 를 background 로 돌릴수도 있고, 그 상태로 noti 발생도 시킬 수 있습니다.
개발언어에 있어서도 실제로 Android 가 돌아가는 건 Java VM 의 중간코드가 아닌 Valvik VM 으로 변환된 코드이긴 하지만, 아무튼 생전 처음 보는 Objective-C 기반의 Cocoa 보다는 그나마 익숙한 Java 코드를 쓸 수 있다는 것도 어느정도 매력으로 다가올 듯 하구요. ( SDK의 시뮬레이터는 iPhone / Android 모두 우수한 듯 합니다 )
이미 런칭해서 성공적인 운영을 하고 있는 App Store 라는 하나를 제외하면 '개발자의 입장' 에서는 Android 가 확실히 더 매력적입니다...만...
발표자가 이야기했던 Android 의 치명적인 결함이 있었으니 그건 바로 'UI 가 구리다' 라는 것.
실제로 iPhone 을 비롯한 Apple 사의 제품이나 UI 들은 디자인면에서 우수하기 때문에 이 'UI가 구리다' 라는건 치명적인 결함이 될 수가 있을텐데, Android 에서도 할려고 하면 충분히 iPhone 같은 디자인을 만들수는 있겠지만 기본 컴포넌트만 사용해도 디자인이 멋진 iPhone SDK 와 삽질을 해야 디자인이 예쁜 Android SDK, 여간 고민이 안될 수가 없습니다.
Google 도 바보가 아니기 때문에 이런 자신들의 약점을 잘 알고 있을테고, 조만간 뭔가 해법을 내어놓지 않을까라고 기대해봅니다.
3. Symbian
세계시장에서 60% 내외의 점유율을 유지하고 있는(하지만 조금씩 점유율은 떨어지고 있는) 모바일 플랫폼의 최강자인 Symbian 이라지만 국내에서는 구경조차 하기 힘들군요. SKT의 HTC 듀얼 터치 등을 비롯해 최근에 해외단말이 국내로 들어오기 시작했으니 곧 Symbian 이란 단어를 자주 접하게 될 날이 오지 않을까 싶습니다.
개발의 경우 클래스 타입 정의시 생성과 클린업 성격등에 따라 T/C/R/M 클래스로 나뉜다는 것과 리브,트랙,클린업 등등 조금은 생소한 부분들이 많아서 재밌을 것 같기도 했지만, 발표자분께서 발표자료를 거의 읽는 수준으로 진행해주시다가 건겅상의 이유로 중단을 해버리셔서 좀 안타까웠습니다. -_-;;
Symbian 관련내용은 LiMo와 더불어 너무 '개발자 스러운 내용' 이었기에, 이 포스팅에 포함할 내용은 아닌 듯 합니다. ( 사실은 죄다 생소해서 이해가 잘 안됐어요 ㅜ.ㅜ )
4. LiMo
솔직히 태어나서 첨들어봤는데 Linux 기반의 스마트폰들이 거의 다 이 LiMo 플랫폼을 이용하는 것 같더군요.
LiMo 는 리눅스 모바일 관련 표준화 단체로써 일반 사용자들을 대상으로 오픈되어 있지 않고 업체들을 대상으로 활동이 진행되고 있습니다.
각각 Founder / Core / Associate 라는 멤버쉽이 있고 Core 멤버쉽은 1년에 $400K (4십만 달러, 약 4억), Associate 멤버쉽은 1년에 $40K(4만 달러, 약 4천만원) 을 내야 한 다는군요.
Founder 는 돈을 낸다고 다 되는 건 아닌거 같은데 대표적인 Founder 멤버로는 vodafone, docomo, panasoinc, nec, motorola, 그리고 삼성전자 등이 있습니다.
발표자가 ETRI 연구원이시던데, ETRI도 Associate 멤버로 가입되어 있고 최근 한창 LiMo 를 연구중인 것 같았습니다. 모듈별로 설계가 되어 있어서 필요한 부분만 취해서 조립하면 된다라는 느낌이었는데 아직까지 100% 내용을 이해하기보다는 기존 LiMo 쪽의 자료들을 연구중이라는 느낌을 많이 받았습니다.
사실 지금까지의 폰들과 달리 앞으로는 스마트폰 시장이 점점 커지면서 양질의 app 와 data 를 얼마나 많이 제공하는지가 관건이 될 것 같은데 플랫폼이나 OS 자체의 우수성은 둘째치고라도 과연 LiMo 도 iPhone 이나 Android 처럼 많은 개발자들을 포용할 수 있을지는 의문스럽습니다.
단말에 built-in 된 프로그램이야 각 회사 사람들이 알아서 만들겠지만, 그 외의 다양한 프로그램들을 자발적으로 만들어서 팔아먹을 수 있는 시장을 만들어 내지 않는 한 개발자/개발회사들을 끌어안기는 힘들 것 같다라는 생각입니다.
안드로이드쪽 발표 중 Android Real Target Porting 세션에서 발표자분이 예전에 ws007sh 라는 window mobile OS 기반 폰에다가 부트 로더를 설치하고, SD카드에 리눅스 커널 2.6.25와 Android 커널을 함께 빌트시켜서 ws007sh 에다가 안드로이드를 올린 사례를 발표하셨는데 LiMo도 하기에 따라서는 Android 를 올려서 묻어가는 방향도 괜찮지 않을까라는 생각입니다.
LiMo 세션을 듣고 나서의 결론 => 단말 제조사에 입사하지 않는 한 접할 일은 없다.
이틀동안 들은걸 생각나는데로 정리해 봤는데 적고 보니 엉망진창이군요. -_-;; 그래도 이정도로 마무리를 할까 싶습니다.
플랫폼 개발팀 내부에서 조만간 전파교육을 해야 하기 때문에 자료정리겸 업무시간에 맹렬하게 포스팅을 했군요.
이걸 기본 뼈대로 PPT를 샤샥~ 만들어야겠습니다. :)