보다 탄탄한 안드로이드 앱을 만드는데 큰 도움이 될 책
http://www.yes24.com/24/Goods/41085242?Acode=101
지인의 지인이 쓰신 책으로, 감사하게도 한권 받아볼 수 있었다. (미리 협찬을 알림 ㅎㅎ)
270페이지 남짓한 그다지 두껍지 않은 책으로, 서점의 안드로이드 책 대부분을 차지하는 기초 서적과 달리 중급 안드로이드 개발 내용을 다룬다. 중급이라는 기준이 참 모호하긴 한데, Activity, 서비스, 핸들러, 앱 초기화, 인텐트 플래그 등 본격적으로 상용 수준의 앱을 만들라치면 고민하게 되는 아리까리한 내용들을 다루고 있다. 그래서 안드로이드 앱을 만들어보지 않았거나 저런 문제들로 stackoverflow 좀 뒤져보지 않은 분들에겐 감흥이 별로 없을 수 있지만, 대충 잘 동작하는 것 같긴 한데 가끔 엄한 동작을 하는 바람에 원인 찾아보려다 고생한 안드로이드 앱 개발자라면 무릎을 탁! 치게 만들만한 내용들이 많다.
안드로이드 책이지만 스크린샷은 없이 핵심 내용만 꾹꾹 담긴, 매우 밀도가 높은 책이다. 그래서 한 페이지 한 페이지 굉장히 집중해서 읽어야 해서, 보는 내내 체력이 꽤 필요했다. 하지만 반대로 이 책 한권만 읽어도 굉장히 다양한 노하우들을 많이 얻어갈 수 있는 큰 장점이 있다.
나도 책을 쓸 정도까진 아니지만 앱을 만들면서 "아, 남들은 나처럼 삽질하지 않게 뭔가 지식을 공유하고 싶다" 는 생각만 종종 하고, 게으름때문에 거의 정리를 못했는데 감사하게도 저자분은 이런 자신의 노하우를 이 책으로 잘 전수해주셨다. 중급 레벨의 책이란게 참 저자도 공부해야 할 게 많고, 어떤 내용을 다뤄야 할 지 선정도 어려울 것 같은데 굉장히 멋진 결과물을 만들어주셨네.
목차를 보면 1장은 프레임워크 전반적인 내용을 다루고, 이후 장부터는 핸들러, 쓰레드, 액티비티, 서비스 등등 앱 구성 컴포넌트 별 내부 동작이나 구현 시 고려사항을 알려준다. 난 여태 위젯이나 서비스를 본격적으로 만들어보진 않았기에 (내가 참여한 프로젝트에선 서비스를 매우 빡시게 쓰긴 하지만, 이미 다 만들어진 상태라...) 내 입장에서 가장 눈여겨본 부분은 2장 핸들러, 5장 액티비티, 9장 애플리케이션이었다.
2장 핸들러에선 루퍼, 핸들러, ANR 등을 다루는데 루퍼의 경우 대충 쓰레드 하나 붙들어서 루퍼 쓰레드로 이용한다는 정도만 알고 넘어갔지만 구현 상세에 대해 더 자세히 이해할 수 있었다. ANR은 로그를 봐도 대부분의 경우 어디부터 해결해야 할지 참 감이 오질 않는데, 이 책에서 아주 자세히 다루진 않았지만 앞으로 ANR 을 맞았을 때 고민해야 할 부분에 대한 중요한 힌트로는 활용할 만한 정보들이 간략히 잘 정리되어 있다.
5장 액티비티의 경우 라이프사이클에 대한 정리와 함께 intent, 태스크 관련 유의사항이 잘 정리되어 있다. 대게 레퍼런스 문서를 봐도 단일 액티비티의 라이프사이클 정도만 언급되어 한 액티비티가 호출한 다음 액티비티 사이의 라이프사이클 메서드 끼리의 순서가 아리까리한데 이러한 가려운 부분을 잘 긁어주고 있고, 태스크나 intent 플래그도 레퍼런스 문서로는 영 감흥이 오지 않는 부분을 잘 설명해주고 있다.
전반적으로 매우 만족스러웠지만, 굳이 아쉬운 점을 꼽아보자면 한마디로 읽기 빡세다. 나보고 같은 주제로 글을 쓰라고 해도 더 친절하게 적긴 어렵겠지만, 하여간 해당 문제로 골치를 썩어본 사람이라면 예전 문제 상황을 떠올리면서 이해를 해 나갈 수 있겠지만, 고민을 해 보지 않은 사람이라면 "이 내용을 왜 알려주는걸까?" 하는 생각이 들 수도 있을 듯 하다. 나 역시 서비스 쪽을 빡시게 써 보지 않아서 다양한 서비스 플래그 시나리오를 읽어보면서 "음, 구체적으로 어떤 시나리오에서 문제가 될까?" 를 머릿속에서 상상하느라 진도가 다른 부분보다는 더뎠다. 하지만 집중해서 읽으면 그 만큼 도움이 될 만한 내용들이니 열심히들 읽어보세요.
추천!