안드로이드 개발팀을 이끌고 있는 개발자의 한 사람으로써 글을 씁니다.
최근 최고의 IT관련 키워드를 고르라고 하면 대부분 스마트폰, 앱스토어를 이야기 할겁니다.
스마트폰이라... 개념도 명확하지 않죠... 사람들이 이야기 하는 스마트폰의 개념은 어떻게 보면 터치폰? 정도?
저는 스마트폰을 이렇게 정의하고 싶습니다.
고 수준의 운영체제를 갖추고 있으며 PC 기능의 일부분을 수용하면서, 직접 프로그램을 설치 및 운용 할 있으며, 인터넷 서비스가 가능한 휴대폰
최고의 스마트 폰을 꼽으라고 하면 아이폰 또는 안드로이드라고 이야기 하겠지요.
아이폰은 휴대폰을 사용하는 사람들의 이상을 가장 잘 실현시켜준 휴대폰이라고 할 수 있는데요, 이 아이폰이라는 것이 아주 골때리는 구조를 가지고 있습니다. 동작 과정은 물론이고 폐쇄적인 구동 환경 및 개발 과정은 이야기 할 것도 없고요 아이폰을 통한 수익 모델은 모두 애플을 거치게 되어 있습니다.
물론 휴대폰을 그렇게 만들고(잘 만들었지요), 거기에 따라가는 사용자, 개발자들이 있기 때문에 누구도 탓할 수 없지만 다른 관점에서 보면 폭정인것이죠. 하지만 가장 잘 만들어진 스마트폰이라는데에는 의의를 제기할 사람은 아무도 없습니다.
그 아이폰의 대항마로서의 가장 유력한 후보는 구글의 안드로이드입니다. 안드로이드의 개념은 바로 "오픈"입니다. 그동안 스마트폰의 동작 및 개발에 관해서는 모두 오픈하겠다는 의미입니다. 그래서 안드로이드에 관련된 개발 자료는 엄청나게 많습니다. 또한 자유로운 개발을 표방하고 있기 때문에 "개발자 등록(?)"이 필요하지 않습니다.
누구나 원하면 공짜로 개발 할 수 있고 공짜로 배포할수도 있으며 거기서 발생하는 수익을 구글과 나눌 필요도 없습니다. 물론 구글 마켓스토어를 이용한다면 약간의 수수료는 줘야 하는걸로 알고 있습니다.
안드로이드는 OS를 이야기 합니다. 아이폰하고는 다른 개념이죠. 아이폰은 하드웨어 및 소프트웨어(OS)를 포함하고 있습니다.
하지만 안드로이드는 오로지 OS를 이야기 합니다. 따라서 하드웨어는 어떻게 만들던지 안드로이드가 구동되고 그 하드웨어 구성이 어느정도의 표준에 적합하다면 누구나 판매가 가능합니다. 그래서 안드로이드 폰도 다양합니다. 또한 많은 휴대폰 제조업체에서 안드로이드 폰을 만들수가 있는겁니다.
이처럼 안드로이드는 "오픈"을 그 모토로 하고 있습니다.
하드웨어 개발업체는 안드로이드 폰을 만든 후 출시하기 위해서, 정확하게 이야기 하자면 안드로이드폰이라는 이름을 달기 위해서는 구글의 인증을 받아야 합니다. 이 과정은 개발사 입장에서는 꽤 복잡하고도 긴 시간을 필요로 한답니다.
어느정도의 안드로이드 기능을 안정적으로 구동할 수 있어야지 인증이 통과된다는 의미지요하지만 다시 말하자면 구글이 명확한 스펙을 제시하지 않은 부분은 멋대로 만들어도 된다는 이야기도 됩니다. 하드웨어 스펙의 부족한점은 전력 소비에 민감한 스마트폰에서는 큰 문제를 야기 할 수 있습니다.
애플리케이션 개발 과정중에 발생했던 문제점을 이야기 합니다.
우리가 만들고 있던 애플리케이션에서 문제가 되는 부분은 디스플레이의 전원이 차단되어도 G 센서의 이벤트는 계속 발생해야 하는 것이었습니다. 사전 조사 결과 G 센서의 전원을 제어하는 내용은 구글 개발자 센터에서 찾을 수 가 없었습니다.
구글 개발자레퍼런스에는 이런 구문이 있습니다.
전력 관리 부분인데요,
전력관리에 관련된 부분은 위의 네가지 플레그로 결정됩니다. 보시다시피 CPU, Screen, Keyboard에 한정되어 있습니다. 센서에 관한 부분은 어디에서도 찾을 수가 없습니다.
그럼 여기서 개발자들은 고민하게 됩니다. 프로젝트를 진행해야 하는가 중단해야 하는가.
당시 넥서스원으로 테스트하고 있었습니다. 실험 결과 디스플레이의 전원이 차단될 경우 G 센서의 전원 역시 차단되었습니다. 그래서 화면이 꺼져 있는 동안에는 센서값을 읽어올 수 없었습니다. 그래서 관련 문서들을 찾아봤습니다. 대부분의 글이 HTC 장치에서는 해당 기능이 동작하지 않는다는 내용이었습니다. 그런데 이런 내용도 있었습니다.
!!모토로라의 드로이드에서는 제대로 동작한다.!!
하드웨어 표준화가 제대로 되어 있지 않았던 것이었습니다. 그 때 당시에는 HTC 기기 보다는 모토로이가 국내에 확산될 때 였고, 운영체제 업그레이드 이슈도 있었기 때문에 개발을 진행해 완료하였습니다.
하지만 모토로이의 OS 업그레이드 이후에도 해당기능은 동작하지 않았고 애플리케이션은 그대로 사장되었습니다.
몇일전에 P&C의 시리우스 장치에 테스트를 하니 또 동작하는 것이었습니다. 환장할 노릇이지요. 그 외의 장치에는 동작하지 않는것으로 확인되었습니다.
저는 매우 단적인 예를 제시하고 있지만 이런 상황은 여러 문제를 야기 할 수 있습니다. 아무리 오픈된 운영체제라고 해도, 아무나 그냥 저냥 만들어버리고 그 문제에 대한 명확한 해결책 및 가이드라인을 제시하지 않는 것은 큰 문제입니다.
이런 문제는 개발자들이 떠 안게 될 것이고, 구글은 오픈된 OS 이니깐 알아서 수정해서 쓰라고 일관할지도 모를일입니다.
또한, 오픈 OS는 보안상 매우 취약하다는 문제점 역시 가지고 있습니다. 긍정적으로 생각한다면 보안상 취약 부분을 Open되어 있기 때문에 많은 개발자들이 찾아 낼 수 있고 수정도 가능하다라고 생각하겠지만, 해커들이 취약점을 발견할 경우 시간적 금전적 피해를 입힐 수가 있으며, 그 피해는 안드로이드 폰의 사용이 많아 질수록 심각해 질 수 있습니다.
“오픈”이라는 단어는 다른 의미를 가지고 있습니다. 바로 “책임”이 없다라는 뜻입니다. 안드로이드OS를 위해 개발된 스마트폰은 어떠한 사고를 당하더라도 구글이 책임지지 않습니다. 왜냐고요? 스스로들 안드로이드를 채택한것이지 구글이 해달라고 한건 아닙니다.
우리나라 사람들만 우르르 몰려다니는줄 알았는데, 세계 IT 상황이 그렇습니다. 아이폰에 엄청나게 얻어터지더니, 구글이라는 공룡기업이 안드로이드를 내놓자 마자 우르르 거기로 몰려갑니다. 아이폰에 당한 것을 거기에서 풀겠다는 심보로 말이지요.
또 하나 망각하고 있는 것이 있습니다. 구글이 왜 노력과 돈을 들여서 Open OS를 공급하고 개발자 지원까지 할까요? 좋은말로 장기적인 투자라고 이야기 하고 싶습니다.
하지만 다른 관점에서 본다면, 우리 생활 하나하나에 파고들려고 하는 구글의 야심을 엿볼수 있습니다. 얼마전 유럽에서 구글 스트릿뷰에서 사생활 정보를 수집했다는 사건 때문에 떠들썩 했었습니다. 바로 그겁니다. 구글은 검색엔진, PC, 웹브라우져, 전화기 그리고 TV 모든 인간 생활에 침투할려고 하고 있습니다. 어떻게 본다면 기업의 가장 이상적인 정책이라고도 할 수 있습니다.
똥인지 된장인지 구분도 못한다라는 이야기가 있습니다. 마냥 다른사람이 좋다 하니 나도 좋다라는 생각은 버려야 할 때입니다. 아무리 옆에서 좋다고 하더라도 사물의 본질을 파악할 수 있는 안목이 필요할 때입니다. 구글이 애플보다 더 지독한 기업이 될지도 모르르 일이고, 언제 어디서 여러분의 자고 있는 사진이 안드로이드 폰에 찍혀서 인터넷으로 TV로 퍼질지 모르는 세상입니다.