BLOG main image
분류 전체보기 (26)
미국생활 (0)
InfoReview (4)
Industry (16)
잡담 (3)
Resource (3)
Communication (0)
Visitors up to today!
Today hit, Yesterday hit
2009. 12. 6. 22:39

OHA(Open Handset Alliance: http://www.openhandsetalliance.com/)의 안드로이드 소스코드 (http://source.android.com/)를 이용해서 상용 제품을 만들다보면 겪는 아주 큰 어려움 가운데 하나가 바로 변화의 속도를 따라잡는 일입니다. 토끼와 거북이의 경주에 비교하자면, 안드로이드 개발팀 (구글 + OHA 멤버 + 오픈소스 커뮤니티)은 토끼라고 할 수 있죠. 2007년말의 첫 공식 발표이후 2009년까지 2년동안, 앞에서 폴짝 폴짝 뛰어가면서 며칠전 발표된 2.0.1 버전까지 진화를 거듭해왔습니다. 반면에 이를 이용해서 제품을 개발하는 제조사는 거북이의 입장이죠. 토끼가 앞서간 발자국을 따라서, 느릿 느릿, 하나씩 하나씩 내용을 이해하고, 포팅하고, 동작을 확인하고, 검증해서 제품을 내놓아야 하니까요. 당연히 가벼운 몸으로 뛰어가는 토끼에 비해서, 짧은 다리에 무거운 등껍질까지 이고 가니 따라가기가 영 버거운 것이 아닐겁니다.

게다가, 이 토끼란 녀석이 젊어서 힘이 펄펄 넘치는지 중간에 잠도 안자고 계속 내달리는 겁니다. 더 열받는 것은, 혼자 가기 심심한지, 딱 거북이 한녀석만 찍어서 같이 폴짝 폴짝 앞서간다는 거죠. 뒤에서 먼지만 풀풀 마시면서 낑낑거리고 따라가는 다른 거북이들에게는 영 입맛이 쓴 상황일겁니다. 근데, 어쩌겠습니까, 그 길로 가야 미래가 보인다니 뭐 어떻게든 따라가야 할 상황인거죠.

일반적으로 리눅스 기반 휴대폰의 개발 기간은 1년 정도를 잡는 것 같습니다. 피쳐폰의 경우 간단한 업그레이드나 지역향별 수정사항만 가하는 경우엔 6개월 이내에도 출시를 한다고 합니다만, 리눅스 기반 폰의 경우, 워낙 모델마다 변화가 커서, 기획에서 출시까지 6개월은 아무래도 무리죠. 6개월 정도를 상품기획, UI 설계, 기능 구현 정도로 잡고, 나머지 3개월에서 6개월까지를 검증과 IOT를 하게 되는 것 같습니다.

그런데 구글의 릴리즈 스케줄은, 뭐 딱 그렇게 규칙으로 정해진 것 같지는 않지만 1년에 2번 정도의 메이저 릴리즈를 생각하고 있다고 합니다. 올 봄에 1.5 (Cupcate)이 나왔고 가을에 1.6 (Donut)이 나왔죠. 현재 오픈소스로 Eclair 브랜치가 있긴 하지만 완전한 버전은 아닌 것 같구요. 그러면 이 상황을 제조사 입장에서 보면 이렇게 되는 겁니다:

지난 6월에 안드로이드 기반 휴대폰 제품 기획을 합니다. 1년후, 즉 2010년 상반기 출시를 목표로, 당시의 가장 최신 버전인 Cupcake 버전을 기반으로, 이런 저런 기능과 UI, 하드웨어 스펙, 디자인 등등을 열심히 의논하고 초기 개발을 시작하죠. 그런데 몇달만에 Donut이 보다 다양한 기능으로 무장을 하고 출시됩니다. 이미 기획이 되고 초기 개발이 진행된 상태라서, 제품의 근본 컨셉을 바꿀만한 변화 (예를 들어 HVGA => WVGA)는 좀 어려울지 몰라도, 소프트웨어의 경우엔 갈아타는 것이 가능하겠죠. 그래서 다시 몇달동안 열심히 Donut 기반으로 개발을 하면 12월 정도에는 설계 검증을 시작할 수 있겠죠. 즉, software는 feature complete이 되고, QA 과정에 들어가는 겁니다. 근데 지금 막 이야기가 나오고 있는 Eclair를 보니까 Exchange Server 지원에서 Google Maps Navigation에 최신 Bluetooth Profile 지원까지, 엄청난 변화가 보이는 겁니다. 이제 이러면 고민에 빠지는 거죠, 이걸 다 무시하고 그냥 QA를 밀어부쳐서 내년 상반기에 출시를 하자니, 그때는 Eclair뿐이 아니고 그 다음 버전인 Flan도 나와있을 확률이 높은데, 그 상황에서 Donut으로 출시해서 과연 상품성이 있을까 하는 걱정이 되는 거죠. 그렇다고, 현재 상황에서 Eclair로 갈아타자니 아직 Eclair가 안정화되지 않은 버전이라서 제품 출시 스케줄 자체가 나오질 않는 상황이구요.

남의 이야기라 저는 참 쉽게 말합니다만, 내년 1Q/2Q에 안드로이드 출시를 목표로 오늘도 개발실의 불을 끄지 못하고 계시는 분들 입장에서 Eclair의 현재 상황을 보는 심정이란, 참으로... 거시기 할겁니다...

이게 어떻게 보면 다른 개방형 플랫폼들 (iPhone, RIM, Palm, WinMo)과 비교되는 안드로이드의 가장 큰 단점일 수 있습니다. 물론 구글이라는 큰형님이 끌고 가긴 하지만, 그래도 50여개가 넘는 OHA 회원사의 다양한 협력 모델에다가, 오픈소스 커뮤니티의 개선 사항까지를 아울러서 소스트리를 관리하다보니, 특정 벤더 플랫폼처럼 로드맵 관리가 칼같이 되기 어려운 거죠. 라이센스 문제와 특허 문제에 기타 복잡하게 얽힌 이해관계까지 고민하면서 동시에 개발자들이 쓰기 편한 SDK와 플랫폼을 릴리즈 해야 하는 거니까요.

반면에 또 이걸 뒤집어서 생각해보면 안드로이드만의 가장 큰 장점이 바로 이 약간은 혼란스러워보이는 다양성에서 비롯되는 혁신이 아닐까 합니다. 정갈하게 차려진 한정식은 아닐지 몰라도, 고추장에 참기름 넣고 썩썩 비벼먹는 비빔밥의 맛이라는 게 또 있는 거니까요...   ^^;

어쨌거나 현재의 안드로이드는 여전히 매우 빠른 속도로 진화중인 플랫폼입니다. 좀 고통스럽긴 하지만, 오픈소스 모델의 개방형 모바일 플랫폼의 미래를 믿는다면 따라갈 수 밖에 없죠. 구글이라는 회사의 비전과 능력, 그리고 2007년말 첫 발표이후 얼마전 모토롤라 드로이드의 출시까지 2년만에 이루어진 안드로이드의 발전 속도를 보면 충분히 기대할만하다고 하겠습니다.

일단 한가지는 인정하고 시작해야 하겠습니다. 안드로이드 기반 제품 개발은 쉽지 않습니다. 그냥 취미삼아 돌려보는 거라면 세상에 이것처럼 재미난 장난감이 없습니다만, 돈받고 팔수 있는 제품을 만들기에는 매우 신중한 접근과 많은 노력이 필요하죠. 이걸 한방에 해결해줄 묘책이 어디 있겠습니까. 관건은 개발 기간의 단축과 더불어 오픈소스 개발 모델에 대한 전략적인 접근이 아닐까 합니다. 제품의 기획과 디자인, 상위 레벨 설계에 많은 시간을 들여서 일관된 개발의 틀을 잡고, 최대한의 소프트웨어 테스트 자동화를 통해서 개발과 검증이 동시에 진행되어야 할겁니다. 더불어, 안드로이드의 오픈소스 개발 모델을 완전히 이해하고 최대한 활용해서, 어느부분까지를 제품 차별화에 필수적인 closed source로 가져가고, 어느부분까지를 전략적인 면에서 다양한 Ecosystem과의 공조를 통해서 open source로 가져갈지에 대한 진지한 고민이 필요합니다. 이런 식으로, 일차 개발 완료가 긴 여정의 시작이라는 것을 인지하고 과제를 기획할때 비로소 경쟁력있는 안드로이드 기반 제품의 개발이 가능하지 않을까 하는, 조심스러운 생각입니다.