http://hyeongkyu.net/110089655699

웹상에 아이폰과 안드로이드 또 겔럭시S등을 까대를 글이 많은대요
좋은 글을 발견해서 스크랩 합니다.
2010.7.13
헉헉! 댓글이 너무 많이 달립니다.
일일히 다 읽고 답변을 못하겠습니다.ㅠ_ㅠ

꼭 전하고 싶은 말은,
저는 본문에서 삼성에 대한 언급은 전혀 하지 않았습니다.
댓글도 갤럭시 S나 삼성에 대한 얘기의 댓글은 자제해주십시오.
저도 삼성의 행보는 알고 있으며, 저는 삼성에 악감정도 좋은 감정도 갖고 있지 않습니다.

Android OS에 대해 사람들이 모르는 점에 대해 알리는 목적으로 글을 쓴 것이고,
그 것을 위해 iPhone의 어떤 단점들을 비하한 것입니다.
저는 iPhone에도 악감정은 없지만, 제가 이 글을 쓰게 만든 어떤 글 때문에 iPhone을 비하한 것이라고만 알아주십시오.

아... 나중에 아이폰 장점 나열하는 포스팅도 따로 하겠습니다.
그 때는 안드로이드의 장점이나 단점을 희생시켜서 아이폰을 띄울지도 모르겠습니다.

주관적인 의견을 객관적인 것처럼 쓰진 말아주십시오. 자신의 의견을 펼치시는 것은 좋습니다만, 사실을 왜곡하지는 말자는 뜻입니다. 아이폰 좋으면 아이폰 선택하면 되는 것이고, 안드로이드 좋으면 안드로이드 선택하면 되는 것입니다. 이 글이 안드로이드를 선택하는 데 어떤 도움을 줄 수 있다면 저는 그것으로 만족할 것입니다.
바로 몇 분 전,  http://savearth.tistory.com/169 에서 "Galaxy S를 사면 절대 안되는 20가지 이유"라는 글을 읽었습니다.
상당히 마음이 편치 않습니다.
삼성에 대해 얘기한 부분은 저도 공감이 가지만, Android OS에 대한 비하는, 상당히 사실을 왜곡하고 있습니다.
그래서, 그 글에 반대되는 글을 한번 써보려 합니다.
아마 iPhone을 비하하는 내용도 나올 것입니다.
위의 글을 쓰신 분은 Android OS도 비하하고 있기 때문입니다.

글을 다 쓰는데는 몇 분이 걸릴지, 몇 시간이 걸릴지 모르겠습니다.
자료 조사 따위는 하지 않습니다만, 최대한 객관적인 사실에 근거하여 적도록 하겠습니다.
물론 사실이 아닌 부분도 있을 수 있습니다.





저는 Android Application을 개발하는 개발자입니다. 현재 Android Market에 등록되어있는, "전국 버스"라는 Application의 개발자이고, 수만명의 Android 사용자께서, 저의 Application을 사용하고 있습니다. 나름(?) 중간은 가는 개발자입니다.

또한, 얼마 되지는 않았지만 근무 중인 회사에서는 국내 모 언론사의 iPhone Application 개발에도 직접 참여하고 있습니다(Xcode에서 Objective-C로 Programming을 하고 있다는 말입니다). iPhone은 많이 만져보지는 못했습니다. (현재는 iPhone Simulator로만 하느라...ㅠ_ㅠ Simulator도 훌륭하더군요!)
그렇다고 안만져본 것도 아닙니다. 그리고 Developer이기 때문에, iPhone은 잘 몰라도 iPhone의 Architecture에 대해 어느정도 알고 있습니다.

그리고, 요즘은 iPhone Application 개발로 인해, Mac Book을 사용한지 몇 달 되었습니다. 그래서 Apple의 기기도 아주 모르지는 않는다고 생각합니다.

대략 이 쯤에서 저의 소개를 접고, 본론으로 들어가겠습니다.






1. Android 2.2가 나왔으니, Android 2.1 이하로는 구형일까?

이 부분은 Android 사용자들도 많이 착각하고 계신 걸로 압니다.
얼마 전, Android 2.2가 나왔습니다. 그렇다면, Android 2.1 이하로는 바로 구형 모델이 되는걸까요?
절대 그렇지 않습니다. 물론 OS의 빠른 Upgrade가 이뤄지면 나쁠 것은 없습니다만,
새로운 Version이 나왔다고, 마치 몇 일 후면, 지난 Version의 OS는 버려질 것이라 생각하는 것은 매우 크게 잘못된 생각입니다.

Android 2.2 이상에서만 돌아가는 Application이 대다수가 되는 데에는 상당한 시일이 걸릴 것입니다.
현재로서는, Nexus One만이 유일하고 공식적으로 Android 2.2를 돌릴 수 있는 기기이기 때문에, Application 개발자가 미치지 않고서는, 별다른 특수한 기능이 없는 이상, 2.2 이상으로 Target을 잡는 일은 없을 겁니다..

현재 Android 2.2 이상에서만 돌아가는 Application은 저는 본 적도 없습니다. 물론 있을지도 모릅니다. 그렇지만 많은 사람들이 사용하는 Application 중에서는 없죠.

분명 Android 2.2에서만 사용할 수 있는 특출난 기능들이 있겠지만, 대다수의 Application은 하위 호환성을 고려해야하기 때문에, 별다른 특수한 상황이 아니고서야, Target을 높게 잡지 않습니다.
원하는 기능을 문제 없이 구현할 수 있는 한도 내에서 가장 낮게 잡는다고 보시면 될 것이고, 현재 이 버젼은 1.6~2.0으로 설정되어있습니다.

참고로, 현재 국내 환경은 Android 2.1과 1.6으로 나뉘어져있습니다.

다시 한 번, 강조하지만, Android 2.2 이상에서만 돌아가는 Application이 주를 이루는 데까지는, 꾀 많은 시일이 걸릴 것이며, 그 때 쯤되면, 완전 보급형으로 나온 Android Phone이 아닌 이상, Android 2.2로 모두 업그레이드 될 것이라고, 저는 장담할 수 있습니다.

Android OS는 PC에 설치하는 Windows처럼 그냥 Phone에 깔아버리면 끝나는 OS가 아닙니다.
이것이 설치되는 Device에 따라서, 굉장히 많은 Tuning을 거쳐야합니다.
여기서 OS의 이런 저런 부분을 많이 손대지 않는 회사일 수록, Upgrade가 빠를텐데, 보통 국내 회사들은 OS를 많이 뜯어고쳐놨기 때문에, hTC나, Motorola보다는 더 오래 걸릴 것입니다. 특히 UI쪽으로 많이 뜯어고쳤죠. 하지만, 크게 차이는 안나게 Upgrade가 될 것이라고 생각됩니다.

OS Upgrade로 인한 성능 향상은, 좋은게 좋은 것이니(?) 언급하지 않겠습니다. 





2. Android 3.0 10월에 출시(?), 최소 사양 1Ghz CPU(?)

위의 얘기가 사실인지는 알 수 없지만, 한가지 확실한 것은 공식적인 이야기는 아니라는 것입니다.
그리고, 위에서 한 얘기와 마찬가지로, 3.0이 나오더라도 Application 호환성에 대한 문제는 전혀(!) 걱정 안해도 될 것입니다.

UX를 통일하니, UI를 통일하니 하는 얘기가 나오지만, 그것도 나와봐야 아는 것입니다.
제 개인적인 예상으로는, 그렇게 통일한다고 해도, 하위 OS에 대한 호환성은 분명히 유지될 것입니다.





3. Android Market은 그리 후지지 않습니다. 게다가 Android는 Application을 Market에서 구하지 않아도 됩니다!

혹자들의 의견으로는 Android Market은 기능이 적고 부실하다는 얘기가 많이 있습니다.
제가 가진 생각은 좀 다릅니다. Android Market은 굉장히 단순하며, 원하는 Application을 빠르게 찾아서 설치할 수 있습니다. 즉 누구나 쉽게 이용할 수 있다는 것이죠.

Application의 수가 적다고 얘기를 많이 하는데, 이미 수만 개(대략 7만여개라고 함)의 Application이 등록되어있습니다.
Apple의 Appstore는 20만개가 넘었다고 하는데, 이미 Android Market에도 있을 것은 다 있다고 보는 것이 맞을 것입니다.

그리고 Android는 Third Party Market을 통해서도 Application을 설치할 수 있습니다. T Store도 그런 곳들 중 하나이지요. 게다가 굳이 Market을 거치지 않고, apk(Android Package)를 이용해, 직접 설치할 수 도 있고, 일부 개발자나 회사들은 Market을 거치지 않고, 본인이 직접 배포하기도 합니다.

얼마나 자유롭습니까? 개발자 등록이 싫으면 그렇게 안하고도 Application을 배포할 수 있습니다.
Application 내부에 자체적인 Update 기능을 삽입해서, Update도 할 수 있게 만들 수도 있습니다.

Apple의 Appstore는 별의 별 희안한 약관을 다 제시하고, 시장을 통제하여, 스스로의 목을 조르고 있는 점도 상당히 있습니다.

많은 분들이 아시겠지만, Android Market은 Application이 유통되는 것을 시장의 자유에 맡깁니다.
검열도 없으며, 어떠한 통제도 없습니다. 물론 사후 통제는 있습니다만, 사전 검열 등은 없습니다.
Application은 등록하자마자 바로 배포됩니다.

이것이 가져오는 이 점은 상당합니다.
Application에 Bug가 발생했을 때, Android Market은 즉각적인 Patch가 가능합니다만,
Appstore는 절대 못 그럽니다. Update 한 번 하려고 해도, Apple의 심사를 기다려야하죠.

몇 일 전에 경기도 버스 정보 시스템 웹사이트가 개편되면서, 저의 "전국 버스"를 비롯하여, 경기도 버스 정보를 제공하는 몇몇 Application에 장애가 발생했습니다. Android 진영의 Application들은, 문제 해결 즉시 Application을 재배포 하였지만, iPhone의 "서울 버스"는 Apple의 심사를 기다리고 있었습니다.

Application의 유통을 Apple이 감독하는 것이 모두 좋기만 한 것은 아닙니다.

Android는 Linux OS에 뿌리를 두고 있는만큼, Linux 진영에서 추구하는 것들도 계승하고 있습니다.
그 중 일부가 바로, 사용자들의 생태계에 맡기는 점이죠.
어느 정도는 사용자들에게 의해 생태계가 유지되는 환경. 그게 Android Market입니다.





4. Android Application은 호환성이 떨어진다(?)

Android는 단말기의 종류가 많기 때문에, Application의 호환성이 매우 떨어진다는 얘기가 있습니다.
맞는 말일 수도, 틀린 말일수도 있습니다.

그러나 확실한 것은, 많은 사용자가 쓰는 Application들은 거의 다 호환성이 높습니다.

Application의 호환성이 떨어지는 문제가 많이 발생하기도 합니다만, 
이것은 절대 Android OS의 문제가 아닙니다. 개발자의 문제 또는 단말기의 문제입니다.
저 또한 개발자로써, 호환성의 문제를 겪어봤습니다. 제가 잘못 개발한 부분이 대부분이었고, 단말기의 문제인 것도 한 번 있었습니다.

개발자의 잘못인 부분은 일반적으로 Android UI Guideline이라는 것을 따르지 않은 Application들에서 많이 발생하는 문제입니다. 보통 저 Guideline을 따라주면, Application의 호환성은 거의 자동으로 확보가 됩니다. 그래서 인기있는 Application들은 저런 부분들을 잘 준수하기 때문에 호환성이 높을 수 밖에 없습니다.

하지만, Guideline을 미쳐 고려하지 못한 개인 개발자나, 지나치게 화려한 UI를 추구하는 Application들은 당연히 호환성이 떨어질 수 밖에 없는 것입니다.

단말기의 문제는, 유독 OS에 Tuning을 많이 가한, 국내 업체의 단말기들에서 많이 발생하고 있는 듯 합니다.
hTC나, Motorola 단말기와, 삼성, Pantech의 단말기를 비교해보면 알 수 있는데, 국내 업체의 것들은 UI가 OS 단계에서 변형된 것을 알 수 있습니다. 이런 부분들 때문에 호환성이 다소 떨어지는 문제가 발생하고 있습니다.

다시 한번 강조하지만, Android Application들이 본질적으로 호환성이 떨어지는 것은 아니며, UI Guideline을 지키면 대부분의 호환성 문제는 없습니다. 이미 인기가 많은 Application들은 이런 부분을 충분히 잘 지키기 때문에 호환성이 매우 높습니다.





5. iOS 4 Multi tasking(?), 그것이 진정 당신이 원하던 Multi tasking인가?

iOS 4가 나오면서, 큰 이슈가 되었던 것이, 바로 Multi tasking이 된다는 것이었습니다.
Multi tasking에 대한 설명은, 뭐 안해도 누구나 다 알것입니다.
화면이 큰 PC에서는 여러개의 Application을 띄워놓고, 사용하는 것인데, 모바일의 개념에서는 눈에 안보이더라도 Application이 실행되고 있다는 것 쯤으로 생각하면 됩니다.

그러나 iOS 4의 Multi tasking은 다릅니다. 일단 크게 보자면, Application은 눈에 안보이는 순간 정지됩니다. 그리고 그 Application을 다시 호출하였을 때, 정지되었던 상태를 다시 가져오는 것이죠.
분명 편해진 것은 맞습니다. 하지만 제가 보기에는, 이걸 Multi tasking이라고 부르기에는 무리가 있으며, 이 정도 Technic은 iPhone OS 3에서도 충분히 가능했습니다.

Application은 종료될 때, 특정한 명령어를 호출하면서 종료됩니다. 개발자는 그 시점에서 현재 상태를 모두 특정한 공간에 저장시켜놓았다가, Application이 다시 실행됬을 때, 그것을 읽어온 뒤, 자동적이고, 순차적으로 Application을 작동시키면 되는 것이었죠. 이미 iPhone OS 3에서도 몇몇 Application은 이런 방식을 사용하고 있습니다.

그걸 좀 더 편하게 해주었나봅니다. -_-; 그리고 Multi tasking이라는 뻥을 치고 있죠.

진정한 의미의 Multi tasking은 Background(Application이 눈에 보이지 않는) 상태에서도, Application이 자신의 일을 수행할 수 있어야 합니다.

  1. Background audio
  2. Voice over IP
  3. Background location
  4. Push notifications
  5. Local notifications
  6. Task finishing
  7. Fast app switching

위의 7가지가 iOS 4에서 지원하는 Backround에서 할 수 있는 작업들입니다. 결과적으로 Background에서 할 수 있는 일은 아직도 별로 없다고 보시면 됩니다.

여기서 Apple의 신도 분들 께서는 이런 말들을 합니다. "Mobile에 Multi tasking이 무슨 필요냐... 저 정도만 되면 혁신적이다!"
하지만, 이것은 iPhone만 써본 사람들의 큰 착각입니다.
Background 작업이 강력하게 지원되는 Android는, 그로 인해 별의 별 것이 다 가능합니다.

일단 Home screen widget이라는 것이 있는데, Application을 실행하지 않고, 바탕화면이라 불리는 Home screen에서 일부 작업을 할 수 있다는 것입니다. Windows에서 Gadget이라고 불리는 기능을 축소해 놓은 것 쯤으로 생각하시면 됩니다.

제가 만든 "전국 버스" Application은 이 기능을 이용하여, 내가 자주 타는 버스에 대한 정보를 Application을 실행하지 않고도, 단 몇 번의 터치로 조회할 수 있게 만들어 놓았습니다.

두번째로는 Service라는 것이 있습니다. 눈에 보이지 않게 계속 살아있는 Application으로, 주로 System을 감시하거나, 눈에 보이지 않게 외부와의 연결을 유지하거나,  기타 등등의 역할을 합니다.

국내 안드로이드 개발자 "도돌"이라는 분께서 만든 "폰 사용량 조회"라는 Application이 있습니다. Phone에서 발생하는 모든 통신을 감시하여, 통화는 몇 분하였고, 데이터 통화는 몇 mb나 하였고, SMS는 몇 개를 보냈고 등의 내용을 감시하는 작업을 합니다. 이것은 Application이 항상 안 보이는 곳에서 살아있는 Service이기 때문에 가능합니다.

Messenger Application들도 이런 부분의 덕을 많이 보고 있습니다. 

제가 아는 iPhone용 Nate On Messenger는 Application이 눈에 보일 때만 되는 걸로 알고 있습니다. 다른 작업과 동시에는 불가능하죠. 그게 Messenger 입니까? PC에서 Messenger 켜놓고 다른 작업하다가, 누가 말걸면 받아서 응답해야하는데, 다른 작업 하려는 순간 Messenger가 꺼지는 것과 같습니다. Messenger를 계속 사용하려면 Messenger를 쳐다보고 있으라는 얘기죠. -

하지만 Android는 그렇지 않죠. Messenger 켜놓고 다른 거 하다가, 누가 말 걸면 알려줍니다. 그럼 다시 Messenger로 작업 전환하면 됩니다.

세번째로는, Alarm Manager라는 것이 있습니다. 이 것은 Alarm 시계와는 좀 다른 의미입니다.
비슷할 수도 있는데, Application이 OS에게 "몇일 몇시 몇분 혹은 일정 시간 간격으로 어떤 작업을 하겠다"라고 알려주면, Application이 실행되어있지 않더라도, Application이 요구하는 작업이 실행되는 것입니다.

예를 들어 Twitter를 보겠습니다. iPhone용 Twitter는 Mention이나, 내가 관심을 가지는 글이 등록되었나 보기 위해 Application을 실행시켜야합니다. 하지만 Android용 Twitter는 그냥 내비두면, 일정 시간 간격으로 Twitter와 통신을 하여, Issue 사항이 있는지 확인을 해주고 알려줍니다. 정확히 말하자면 Push는 아닌데, 어느 정도 Push와 유사한 기능입니다.

Twitter로 의사소통을 하면서 즉각적인 대응을 해야하는 사람이라면, 정말 좋죠.
일반 사용자들에게도 분명 편리한 기능일 겁니다. 제가 아는 Android용 SNS Application들은 거의 다 이런 동작을 하고 있습니다.

이런 것들이 바로 진정한 Multi tasking 아니겠습니까?





6. 손 안의 PC라면서요!

이미 대다수의 사람들에게 스마트폰은 "손 안의 PC"라는 이미지로 박혀있습니다.
물론 맞습니다. PC에서 할 수 있는 많은 기능이 녹아있죠.
하지만, PC에서 가장 빈번하게 하는, 파일 관리의 기능이 iPhone에는 없습니다.

간단한 상황을 하나 설정해보죠. PC에서 보던 PDF 파일이 있습니다. 밖에 나가서도 좀 봐야겠습니다.
일반적인 상식으로는 PC와 Phone을 연결하여, 집어넣으면 됩니다. 하지만 iPhone은 안됩니다.
사용자가 iPhone의 저장공간에 임의적으로 접근하는 것이 안되기 때문이죠. 사용자가 iPhone의 저장공간에 접근해서 파일을 저장하려면 무조건 iTunes를 거쳐야하는데, 이건 음악, 동영상, 사진같은 것들 밖에 전송을 못합니다. 더군다나 한번 집어넣으면 빼는 건 안되죠.

정말 중요한 상황에는 미칠지도 모릅니다. 내가 갖고 어떤 File을 아무개에게 전달해주려면, 무조건 Application을 통해서 Internet(또는 Network)을 한번 거쳐서 File이 전송되어야한다는 것입니다. Internet 안되는 야외 환경이라면, 더 절망적일 것입니다. 해당 파일을 관리해주는 Application에 외부로의 File 전송 기능이 없다면, 이 마저도 안되죠.

그냥 Application을 통해 Internet에서 받아서 특정 Application에서만 보고, 보다가 지워버려야하는... 내가 가진 파일인데, 내가 맘대로 못하는 경우가 아주 대부분입니다.

이동식 디스크(?)... iPhone에서는 절대 없으며, iPhone을 PC에 연결했을 때, 잡히는 이동식 디스크영역에 파일을 저장하더라도, 그건 iPhone OS에서 절대 접근 못한다고 보시면 됩니다. 이건 iPod서부터 그랬습니다.





7. Android는 내장 Memory가 못 쓸 정도로 부족하다(?)

물론 국내 Android 단말기 1호인 Motoroi가 삽질을 한 결과로, 이러한 Issue가 발생하였습니다.
정확히 말하자면, SKT가 삽질을 한 것이었죠.(사용가능한 내장 Memory의 절반에 가까운 용량을 SKT가 자사 Service를 위한 영역으로 묶어놨기 때문에 발생했던 문제입니다.)

하지만 현재는 Android 단말기가 계속 나옴에도 불구하고, 해당 Issue는 사라졌습니다.
내장 Memroy가 늘어난 Android 단말기가 나오기 때문입니다. 그리고 초기에 Issue를 몰고 왔던, Motoroi도 Motorola의 공식 Update를 통해, 용량을 2배 가까이 확장하였습니다.(잃어버렸던 절반을 찾았다고 보는게 맞을지도 모릅니다.)

iPhone처럼 언제 다시 쓸지도 모르는 Application들까지 무지막지하게 재고로 쌓아놓고, 돌리기에는 한계가 있을지 모릅니다.
하지만 장담컨데, 사용자가 쓸만큼 Application을 설치하고 운용하는데에는 충분하다고 생각합니다.

요즘 Desire 사용자들 사이에서 내장 Memory가 부족하다는 의견들이 나오고 있습니다만, 저의 생각으로는, 사용하지 않는 Application들까지 왕창 쌓아놓고 쓰시는게 아닌가 생각됩니다.

분명 Android는 그렇게 쓰기에는 무리가 있습니다만, 확실한(!) 것은, 일반적인 대다수의 사용자가 많은 Application을 설치하여 사용하기에는 충분합니다!





8. 기본 제공 Application까지 모두 바꿔버릴 수 있는 Android!

Android는 iPhone과는 달리, 기본 Application들도 바꿔 쓸 수 있습니다.
예를 들자면 바탕화면을 담당하는 Home이라는 Application이 Google에서 제공하는 Application이지만, hTC용 Android는 Sense라는 것으로 바뀌어져서 출시되며, 이 또한 다른 Application으로 바꿀 수 있습니다.
바탕 화면의 작동 방식이나 모양이 맘에 안들면, 더 좋은 성능의 다른 Application으로 대체할 수도 있다는 것입니다.

Motoroi 같은 경우는, 기본으로 제공되는 Home Application이 성능이 많이 떨어지는 편이었습니다. 그러나 이미 Market에는 그를 대체할 많은 Application이 무료로 제공되고 있었고, 그 중 유독 성능이 남다르게 뛰어나고, 시각효과 또한 화려한 Launcher Pro라는 것이 있었습니다.
많은 Motoroi 사용자들은 이를 이용해 기본 제공 Application이 가진 한계를 해결하였습니다.

SMS 관련 기본 Application도 기능이 부실하면, 다른 SMS Application 깔아 쓰면 그만입니다.
그래서 Handcent SMS 라는 Application이 많은 인기를 끌고 있으며, 이 Application의 Google의 음성 인식 기능에 힘입어, 문자를 말로 쓸 수도 있습니다. 게다가 기본 SMS에서는 제공하지 않는 훌륭한 기능들이 많이 제공되고 있습니다.

기본 제공 Application을 바꿀 수 있으서 득을 보는 것 중 가장 최고는!
역시 키보드를 바꿀 수 있다는 것을 들 수 있을 것 같습니다. Android는 물리적 QWERTY 키보드를 장착하여, 입력기의 불편함을 해소한 기종들도 있습니다.
그러나 Touch screen만 제공하는 기종에서까지 화면에 나온 QWERTY 키보드를 쓰기에는 불편이 너무 큽니다.
이는 iPhone 사용자들도 대부분 공감하시리라 생각되는데, 작은 화면에서는 QWERTY보다 천지인과 같은 키패드식 입력이 훨씬 더 빠릅니다. 그것이 훌륭한 한글의 특징이죠.
그 조그만 화면에, 수십개의 버튼을 그려넣으니, 오타가 줄창 발생할 수 밖에 없죠.
하지만 키패드 방식의 키보드는 십수개만 그려넣으면 됩니다. 익히기도 쉬울 뿐더러, 빠르고 오타가 적을 수밖에 없습니다.

이미 안드로이드에는 천지인(삼성폰에서만 됨)을 비롯하여, 여러가지 한글 입력을 편리하게 하기위해 연구된 많은 키보드가 존재합니다.

저는 neostylo5라는 한글 키보드를 쓰고 있습니다, 장담컨데, iPhone에 있는 한글 키보드로 입력하는 속도보다 최소 두배는 빨리 입력할 수 있습니다.





9. 다양한 Hardware Spec.

아시다시피 iPhone은 Hardware Spec이 단 하나로 통일되어있습니다.(저장 용량 제외)
물론 호환성을 높이기 위해, 그럴 수도 있습니다. 하지만 이것은 달리말하였을 때, 더 좋은 Hardware와 그에 따른 확장적인 기능이 나오더라더, iPhone은 차기 Model을 기다릴 수 밖에 없다는 것입니다.

실제로, iPhone에 DMB가 없는 것도 그렇습니다. 뭐 Apple을 숭상하시는 분들께서는, "그깟! DMB 있어도 안보는거..."라고 합니다만, 꾀 많은 여성분들은 속으로 "그래도 있으면 좋을텐데... 있으면 많이 봤을텐데..."하고 있는 거 다 압니다.

대표적인 것이 DMB일 뿐이지, 물리적 Keyboard도 그렇고, 찾아보면 많을 수도 있습니다.

그리고, Smart Phone이 너무 어려운 분들을 위해, Android에는 Spec과 가격이 동시에 내려간 보급형 기기도 있습니다.
가격은 일반 Phone인데, 기능은 Smart Phone이며, 그 대신 지구자기장 센서나, 가속도 센서 등의  기능이 제거되었고, 속도가 약간 느릴 수 있다는 점은 저는 Power User가 아닌 사용자들에게는, 충분히 먹혀들어갈 수 있다고 봅니다. 이런 Phone들이 그렇다고 특별나게 호환성이 떨어지거나, 당연히 되야할 것도 안되게 막아놓거나 한 것도 아닙니다. 어차피 일반 Phone 가격이니, 그냥 일반 Phone처럼 써도 손해볼 것은 없는 그런 Smart Phone입니다.

이제 이러한 Android Phone들도 많이 나올 것입니다. 이미 Pantech에서 Izar라는 기종이 나왔습니다. Smart Phone은 고성능의 Hardware로 중무장해야하만 하고, 최신의 Tech들이 많이 탑재되어야만 Smart Phone이라는 생각은 너무 Power User 위주의 생각인 것이라 저는 생각합니다.





10. 정말 Android Application 개발자가 iPhone Application 개발자보다 적을까?

제가 알기로는 Android Application 개발자는 iPhone Application 개발자보다 적습니다.

그렇지만, 과연 언제까지 더 적을까요? 정말 Android Application 개발자가 더 적다는 통계가 사실인지도 의심스럽긴 합니다.

기술적으로 들어가겠습니다.

iPhone Application을 개발하기 위해서는 Mac OS X +  XCode + Objective-C라는 조합으로 개발을 진행하게 됩니다. 물론 다른 방법은 있다고 알려져 있지만, 그렇게 하는 사람은 본 적도 없으며, 아직은 현실적으로 그렇게 개발하는 것은 매우 어렵습니다. (PhoneGap이라는 것이 있긴한데, 역시 많은 기능의 제약이 따르며, Adobe CS5에서 지원하려 했던 iPhone Cross Compiler는 Apple의 정책 변경으로 인해 사용 불가가 되었습니다. 이건 뭐 깡패도 아니고... -_-;)

그런데, 국내에서 Mac OS X 운영체제의 점유율은... 뭐 아시다시피 극소수에 가깝습니다. 이른 바 매니아들만의 전유물이라 불릴 정도로...
그렇다면 XCode라는 개발 도구는 어떨까요...
극소수가 사용하는 Mac OS X에서만 사용하는 전용 개발 도구 입니다. 역시 많은 사람들이 이 개발 도구의 존재조차 모릅니다. 국내에서는 iPhone 개발에 관심이 있는 사람이 아니면 거의 모릅니다.

마지막으로, Objective-C 언어입니다. 개인적으로는 상당히 잘 만들어진 Programming 언어라고 생각합니다만, iPhone Programming을 위해, 새로운 언어를 습득해야한다는 것은 참으로 Stress가 아닐까 생각됩니다. 게다가 이 Objective-C는 C 언어를 계승했다고 하기에는 현존하는 다른 Programming 언어들과 모양새가 너무나도 틀립니다. Basic 언어와,  C 파생 언어와, SQL 언어가 생겨먹은 게 완전히 틀리듯이 이것도 그정도로 틀리다고 보시면 됩니다.
(뭐 그렇다고 익히기에 무지막지하게 어려운 언어는 아닙니다. 뭐 Progamming 언어가 다 그렇지 않겠습니까.)

물론 Objective-C를 가지고, 다른 Apple 환경의 Application을 만들 수는 있지만, 극소수의 다른 Apple 환경을 위해 Objective-C를 공부하는 사람이 그리 많을까요?
현재 상황에서 Objective-C를 공부한다는 것은, iPhone Programming만을 위해 공부한다고 보시면 맞습니다.

물론 저는 이미 위의 세가지 개발 환경에 대해 어느 정도 학습이 된 상태이지만, 저도 Stress 무진장 받았습니다. OS~개발툴~개발언어... 완전 새로운 3박자를 모두 익혀야 비로소 iPhone Application 개발 전선에 뛰어들 수 있습니다.

반면, Android는 다릅니다.
Windows에서도, Gnome이나 KDE 등의 GUI 환경을 가진 Linux에서도, Mac OS X에서도, 개발이 가능하며, 어떤 운영체제에서도 작동되는 Eclipse라는 개발 도구를 가지고 개발을 합니다.
게다가 개발 언어는 이미 국내에도 수만명의 개발자가 활동하고 있는 Java입니다.

Eclipse라는 개발 도구는, Microsoft의 Visual Studio와 함께 개발 도구의 양대 산맥입니다. 이건 뭐 말이 필요없죠. Programmer를 위한 최고의 선물을 묻거든 주저없이 Eclipse를 꼽는 사람이 많다는 데는 이견이 없을 것입니다.

마지막으로 Java 언어입니다. Java는 성능을 어느정도 포기한 대신, 범용성을 택한 객체지향 언어입니다.
그 범용성으로 인해 Android에서도 주 개발언어로 채택된 것이라 생각합니다.
전 세계의 Web Server Programming을 주도하고 있는 언어인 것은 많은 사람들이 알고 있으며, 국내에도 Java Programmer는 수만명에 이릅니다. 전국에 있는 대학교의 모든 컴퓨터 관련 학과는 Java Programming을 이미 수년 전부터 필수 과목으로 채택하고 있습니다.

이 많은 사람들이 Android Programming을 위해 준비해야할 것은 몇 가지 없습니다. "Android에서는 UI를 어떻게 그리느냐, Android Application의 Lifecycle은 어떠한가" 정도 일 것입니다.  그 외의 부분은 보편적인 Java Programming의 관습을 따라가고 있습니다.

국내에 Android가 들어오면서, 이른바 "개나소나" Android 개발자가 되는 것도 바로 이미 준비된(?) Android 개발자들이 많기 때문입니다.

과연 언제까지 iPhone Application 개발자가 더 많을까요? 바보가 아닌 이상 어떻게 흘러갈지는 뻔하지 않겠습니까?





결론:

일부 Apple의 진영에서는, 이것 저것 생각하면서 써야하는 것은 너무 불편하다, 신경쓸 거 없이 편하게 쓰는 iPhone이 최고다! 라고 말씀들 하십니다.
하지만, 제가 주변에서 본 바로는, 이것 저것 생각 안하면서 쓰는 iPhone 사용자들은, iPhone도 일반 Phone처럼 사용하더군요. -_-;
결국, Smart Phone은 이것 저것 생각하면서 써야 최상의 Performance를 발휘하지 않나 싶은데, iPhone은 이것 저것 생각하면 할 수록 안되는 게 너무 많단 말입니다. 
Google의 부사장께서 공식 석상에서 iPhone을 북한에 비유하였습니다.
물론 경쟁업체를 비하하기 위한 것이었지만, 근거 없는 얘기는 절대 아닙니다.

제발 Apple 빠들에게 부탁입니다. 단점은 단점으로 인정합시다.

솔직히 저도 iPhone보면 그 속도와 성능에 반합니다. 부럽습니다. Android는 아직까지 그렇게 뛰어난 반응성과 속도는 보여주지 못합니다. Android에는 아직 없는 iPhone Application 보면 감탄합니다.

하지만, Apple 빠들은, iPhone에서는 불가능하면서도 Android에서 가능한 유용한 여러 기능들을 보여주거나, 설명해주면...
"그래서? 나는 그거 안써~ 그런거 없어도 되~ 그럼 너나 실컷 써~"... -_-;... 참 답이 없습니다.
상황이 거꾸로 됬으면, 안봐도 비디오죠.





위의 내용을 총 정리하고, 기존에 제가 갖고 있는 iPhone의 장점을 나열하면 딱 두가지입니다.
(물론 장점은 더 있습니다. 하지만 저는 이 글을 극단적으로 적기로 마음 먹었기 때문에...)

- Appstore에 Application이 많다!
   :그러나 쓰레기도 같이 많다!
   :Android Market이 급속도로 추격하고 있다!, Android Market에도 있을 건 다 있고, Android Market에만 있는 Application도 꾀있고, 태생적으로 iPhone에서는 구현 불가능한 Application들도 Android에는 있다!

- 속도만 빠르다!
   : Multi tasking이 안되니 당연히 빠를 수 밖에... -_-;
   : 그렇다고 Android가 그렇게 느리지도 않다. Android 기기는 고성능의 Hardware로 극복해 나갈 것이다. 얼마 안남았다!





제가 위의 글에서 iPhone 까는 글을 좀 썼지만, iPhone이 좋냐, Android가 좋냐의 문제는 답이 없는 것 같습니다. 제가 위에서 iPhone을 좀 비하했지만, iPhone은 훌륭한 Smart Phone입니다. 국내 80만대(?) 이상 판매량이 괜히 나온 것은 아니겠죠.

현명한 선택은, 사용자의 몫이고, 사실 왜곡하는 이상한 사람들 많이 없었으면 좋겠습니다.

그럼 안녕히!

+ Recent posts