어쩌다 이번에 한빛미디어에서 새로 나온 '안드로이드의 모든 것 분석과 포팅'이라는 신간을 책이 나오기 전에 미리 읽어볼 수 있었다. 이번에는 서평을 대신해 조금 형식을 바꿔 책에 나온 추천사를 한번 옮겨보았다(주의: 출판사에 발송한 추천사 원문 그대로를 실었으므로 실제 인쇄된 책에 나온 추천사 문구와는 조금씩 차이가날지도 모르겠다. 하지만 전달하려는 내용은 변함이 없다).
“안드로이드와 부대끼는 개발자를 위한 지도와 나침반”
안드로이드 플랫폼은 리눅스를 기반으로 만들어져 있지만, 일반적인 리눅스 개발 플랫폼과는 달리 휴대폰에 특화되어 있으므로 어느 정도 리눅스에 익숙한 개발자라도 새로 익혀야 할 부분이 많다. 이런 과정에서 부딪히는 문제는 C로 만들어진 커널 디바이스 드라이버, 중간을 맡고 있는 C++ 프레임워크, 앱 개발을 위한 자바 프레임워크에 이르는 방대한 분량에 있다. 프로그램 언어도 제 각각이며 추상화 수준도 상당한 차이를 보이지만 결국 모든 구성 요소는 오밀조밀하게 맞물려 돌아가므로 분리해 이해하기란 결코 쉽지 않다. 물론 장애물을 하나씩 차례로 각개 격파하며 안드로이드라는 신기술이 제공하는 흥미로운 비밀을 밝혀내면 가장 좋겠지만 늘 그렇듯 우리에게는 한정된 시간이 문제다. 게다가 지도와 나침반도 없는 상황에서 원시 코드만 뒤지며 돌아다니다 보면 길을 잃어버리기 딱 쉽다. 일례로 안드로이드 코드를 전부 받아오려면 버전과 네트워크 상태에 따라 차이는 나지만 대략 2시간에서 4시간 정도 걸려 10기가바이트짜리 하드 디스크를 가득 채우며, 요즘에 나온 최신 컴퓨터를 사용하더라도 빌드에만 30분에서 1시간 정도 걸리기 때문에 절대로 만만하게 보고 접근할 상대가 아니다.
다행스럽게도 이번에 안드로이드 개발자들의 어려움을 극복하는 데 도움을 주는 길잡이가 등장했다. 이번에 새로 나온 안드로이드 플랫폼은 일반적인 앱 개발서나 안드로이드 프레임워크 소개서를 넘어서 안드로이드 플랫폼을 지탱하는 리눅스 관련 기술(init, udev, uevent)은 물론이고, 입력 디바이스, 센서 하위 시스템, GPS 하위 시스템, 오디오 하위 시스템, IPC 바인더, 카메라 시스템, GDI(그래픽 디바이스 인터페이스)를 원시 코드를 중심으로 집중적으로 설명하고 있다. 단순 코드 나열에 그치지 않고 실제 개발과 이식 과정에서 일어나는 여러 가지 흥미로운 이야기가 현장감 있게 펼쳐지므로 어떤 부분에 주의하고 집중해야 하는지를 간접 경험할 수 있다. 물론 개발자마다 관심 분야도 다르고 실제 맡은 업무도 다르기 때문에 안드로이드와 관련된 모든 부분을 이 책 한 권으로 이해하기란 불가능하지만 그래도 출발점을 결승선으로 조금이라도 당겨 놓는다는 관점에서 이 책의 가치를 찾을 수 있다. 여러 플랫폼에서 드라이버부터 HAL, 프레임워크 개발까지 다루는 안드로이드 플랫폼 개발자라면 긴 여정에 앞서 꼭 이 책을 읽어보기 바란다. 앱 개발자라면 추상화의 늪에 빠져 허우적거린다는 느낌이 들 때 이 책을 펼쳐보면 수면 아래에서 펼쳐지는 상황을 조금이라도 이해하는 데 도움이 되지 않을까 싶다.
안드로이드 내부 구조가 궁금하신 분이라면 이 책을 읽어보시면 조금이라도 갈증이 해소되지 않을까 싶다. 순수 앱 개발자라면 반드시 목차를 먼저 읽어보시고 구입하시길...
EOB