본문 바로가기

[ 프로그래밍 ]/프로그래밍 책

Do it! bada 모바일 프로그래밍

프롤로그

안드로이드라고 하는 악마에 관심을 빼앗겨 열정을 쏟아 부은지도 3개월. 이제 다른 플랫폼에 손을 한 번 대어 볼까 할 때 즈음 바다 플랫폼에 대한 솔깃한 제안을 받았다. '아이폰, 안드로이드로 개발해 둔 프로그램을 바다 플랫폼에서 사용할 수 있도록 개발해 주면 개발비를 지원해 주겠다'는 얘기였다. '그게 쉽나. 어디...' 그리고 몇 달이 지났다.

"왔다!"

인터넷상에서 이루어지는 소소한 이벤트에 유난히 강한 나는, 이번에는 책 서평 이벤트에 당첨이 된 터였다. 그리고 희한하게도 그 책은 삼성의 모바일 플랫폼인 바다에 대한 책이다. 기쁜 일이 아닌가! 안그래도 자료도 부족한데 새로나온 프로그래밍 자습서를 공짜로 얻을 수 있다니 말이다. 머리가 빠지느니 어쩌니 하는 '심각한' 농담은 할 것도 없이 반가운 얼굴을 기쁘게 맞이 했다.


1. 표지


책의 표지는 깔끔하다. 한글은 굵은 글씨체 보다는 가늘게 쫙 빠진 폰트가 마음에 들기도 하거니와, 파란 색과 검은 색의 조합이 어째 바다라는 이름 만큼이나 잘 어울린달까. 웨이브폰 없이도 모바일 프로그래밍을 배울 수 있다는 사실에 반가워 하면서도 한편으로는, 수준 높은 앱 소스라는 왠지 자아찬양적인 표현은 자제해 주었으면 어땠을까 하는 생각을 했다.


2. 저자

'여인춘 박사님 책이구나.'
예전에 동의대 C프로그래밍 강의를 하기 위해 여러가지 책들을 검토했던 적이 있다. 그 중에 유난히 눈에 띈 책이 'C 무작정 따라하기'였는데, 마치 옆에서 과외선생님이 풀어서 설명해 주는 듯한 문체가 굉장히 매력적이었다. 그래서 실제로 교재로 선택해서 사용을 하기도 했고. 그분이 쓴 책이다. 이해하기 쉽게 풀어 쓰기로 유명한 분. 아마 이 책도 그렇게 쉽게 쓰여지지 않았을까 기대하며 책장을 넘긴다.


3. 내용

Do it!
bada 모바일 프로그래밍
은 3개의 대분류와 18개의 소분류로 나뉘어져 있다. - 책에서는 각 장을 마당으로 표현한다.

첫째마당 Dive into bada!

01
Dive into bada!
02 바다의 구성과 개발환경


먼저 첫 째 마당에서는 시장의 흐름과 패러다임의 변화, 그리고 바다 플랫폼의 탄생으로 이어지는 약간의 뜨거운 전개-그도 그럴것이 저자가 현재 삼성 DMC 연구소에 재직중이시라-와 함께 바다 플랫폼의 구축 환경 및 설치방법 등에 대해 상세하게 설명한다.

책으로만 접한 바다 플랫폼은, 아이폰용 어플 개발을 위해 맥을 구입해야 한다거나 또는 해킨토시로 일컫는 복잡한 버추얼라이제이션 과정을 거쳐야 하는 과정 또는 안드로이드 어플 개발을 위해 JDK와 SDK를 각각 설치하고 이클립스 설치 후 복잡한 경로설정 등의 여러 변화무쌍한 절차들을 따라야 하는 것에 비해서는 상당히 심플한 느낌이다.

둘째마당 따라하면서 맛보는 애플리케이션

03
터치로 반응하는 앱
04 다양한 UI를 위한 여러 가지 컨트롤 사용하기
05 바다 앱 디버깅하기
06 바다 앱 패키징하기
07 앱 프레임워크 살펴보기


다음으로, 둘 째 마당에서는 실제로 컨트롤을 사용하는 간단한 예제를 통해 바다 플랫폼과 C++의 연관성에 대해 이해할 수 있도록 풀기 시작하여, 디버깅 방법과 패키징 방법 등 개발자에게 꼭 필요한 정보들을 친절하게 설명한다. 특히 이벤트 인젝터가 에뮬레이터에서 쉽게 쓸 수 있도록 되어 있다는 정보는 상당히 유쾌했다.

프로그램을 배워 나가는 순서상으로는 제일 마지막이 될 법한 내용들이 앞에서 미리 정리되는 장점은 제법 많다. 이미 C++을 경험한 개발자 그리고 다른 플랫폼에서 프로그램 경험이 있는 이들에게는 공통점과 차이점, 그리고 복습해야 할 내용들을 일목요연하게 요약한 정리의 개념일 것이고, 초보자들에게는 향후 감내해야 할 아픔과 고통을 미리 예견케 하는 예습의 효과가 존재한다. 굳이 단점을 꼽자면 어려운 내용이 앞에 나오는 탓에 초심자들이 더 헤깔릴 수 있다는 것이겠지만, 솔직히 내가 책을 쓴다해도 이 이상의 구성을 위한 타렵점을 찾는 일은 쉽지 않았을 것이다. 공부하려 하지 않는 자에게 밥과 김치를 순서에 맞게 떠먹여 줄 수는 없는 노릇이 아닌가? 게다가 이 책은 기승전결을 지켜야 될 법한 소설이 아니므로. 따라하기 급급한 초보자들은 일단 5, 6, 7장을 그냥 넘어가는 것이 뇌의 회전을 위해 좋을 수 있겠다. 하지만 작가의 말 처럼 괜히 주눅들 필요 없을 것도 같다. 충분히 쉽게 설명이 되어 있고 또한 많은 내용이 아니므로 끈기있게 읽는 것이 책을 읽어나가는 독자의 영양가 면에서는 좋을 것이다.

셋째마당 바다 프로그래밍 기본기 다지기

08
바다 프로그래밍의 기본 지식
09 바다 플랫폼의 기본 클래스
10 다국어 지원
11 전화 / SMS / MMS / 이메일 기능 다루기
12 카메라 기능 다루기
13 위치 기반 서비스 다루기
14 다양한 UI 다루기
15 그래픽 처리하기
16 멀티미디어 다루기
17 네트워크 서비스 다루기
18 센서들을 이용한 UX


마지막으로 셋 째 마당에서는 바다 프로그래밍이 일반적인 C++ 프로그래밍과 어떻게 다른지를 시작으로, 기본적으로 알아야 할 프로그래밍 지식들을 나열한다. 도표와 예제소스, 설명으로 이어지는 부드러운 흐름은 역시 이 책의 장점이다. 또한 전문가 또는 선배 개발자의 입장에서 중요한 요소들을 정리해 둔 '전문가 조언'란의 글들도 도움이 많이 된다.

9장 부터는 바다 플랫폼 기본 클래스들의 설명과 사용방법, 주요 메소드들과 예제가 설명되는데, 기존 C++에는 없는 바다 플랫폼 만의 클래스들에 관심을 갖게 한다. 특히 ByteBuffer 클래스와 중요 자료구조들을 기본으로 제공하는 Collection 네임스페이스의 클래스들은 유용하게 사용될 것 같다.

다국어/다국가 지원을 위한 프로그래밍도 수월하게 할 수 있게 되어 있다는 내용을 쓰고 있노라니 어째 내가 이 책의 서평을 쓰는 것이 아니고 바다 플랫폼의 장점을 쓰고 있는 것 같아 그만 두려 한다. 그만큼 이 책은 바다 플랫폼을 잘 알고, 특히 그 장점을 잘 드러내어 쓰여진 책이라는 생각이 든다.

이외에도 전화/SMS/MMS/e-mail 기능 다루기, 카메라 기능 다루기-개인적으로는 카메라 버퍼에 직접 접근해서 데이터를 처리할 수 있는 예제가 있었으면 더 좋았겠지만-, 지도서비스 등의 위치기반 서비스 다루기, 멀티미디어(MP3, MP4) 다루기 등과 그 외 다양한 UI를 다루는 방법 등 바다 프로그래밍에 필수적인 요소들을 예제와 함께 잘 설명하고 있다.

독자는 어떤 어플리케이션을 개발하기 위한 목적으로든 바다 플랫폼을 공부하기 위한 목적으로든 이 책을 유용하게 이용할 수 있겠다는 확신이 든다. 


4. 총평

Do it! bada 모바일 프로그래밍은 초보 개발자들 부터 지금 다른 플랫폼에서 간을 보고 있을 많은 개발자들에게 도움이 될 만한 책이다. 특히 관련 프로그래밍에 대해 수업을 한 번 듣고 싶다고 여기는 개발자라면 이 책이 그 해답이 될 것이다. 앞서 언급한 바와 같이 쉽게 풀어쓴 문체와 문제를 해결하기 위한 접근 방법, 그리고 앱 예제 소스의 해설 등이 아주 자세한 점 등을 그 이유로 꼽을 수 있겠다.

다만 안타깝게도 바다 1.2 버전이 릴리즈 된 현재, 이 책은 SDK1.0.0b3을 기준으로 작성 되었다. 프로그램의 설치부터 예제의 수행 까지 별반 다른 내용은 없었지만 혹여 뒤이어져 나올 다른 책들에게 그런 단순한 이유로 경쟁력에서 밀리진 않을지 우려되는 부분이긴 하다. - 적어도 현재까지는 이 책이 bada 플랫폼에 관한한 유일한 한글 서적이다.

부디 이 책이, 대한민국의 모바일 플랫폼 시장 경쟁 구도에 새바람을 일으킬 초석이 되길 기대해 본다.

상세보기



덧. 좋은 책을 소개해 준 자바/Java/C/C++ 개발자모임 [Code人/코드인] 카페와 이지스퍼블리싱에 고마움을 전한다.