본문 바로가기
BOOKS BOOKS BOOKS

실무에 바로 적용하는 안드로이드 프로그래밍 (제4판) -제이펍

by 19810721 2021. 4. 7.

이 글을 읽는 분은 대부분 개발자이고, 이미 많은 시도를 했을 것으로 생각한다. 스마트폰이 우리의 삶에 깊이 관여하기 시작했을 때부터 개발자라면 누구나 한 번은 번뜩이는 아이디어로 만든 앱을 만들고 싶었을 것이다. 책장에 이미 다섯 권은 족히 넘을 법한 안드로이드 책이 있는데, 이 책이 왜 필요할까 싶었다. 그러나 내용을 접하고 읽어가면서 처음으로 이 책은 과거가 아닌 지금을 말해주고 있구나 싶었다. 사실 이미 많은 사람들이 본다고 하는 앱 개발 관련 서적은 대부분 교재로 사용되어서 많이 팔린 책이거나 이미 버전업이 되 버린 안드로이드 운영체제를 따라가지 못하는 경우가 대부분이다. 그러나 이 책은 지금 현 시점에서 앱 개발자가 새롭게 배워야 할 내용과 개발자로서 앱 개발을 처음 시도하는 입장에서도 반드시 수행해야 할 기본기를 놓치지 않는다. 은 탄환이 어디 있을까 싶지만 적어도 이 책 한 권에서 무엇을 익힐 수 있는지 두가지 독자 방향에서 신중히 적어볼까 한다.

 

개발툴, 언어, 아키텍처. 모두 최신의 내용이 담겨있다. 오래된 것은 '나' 일 뿐.

 

우선 초급자의 입장이다. 혹은 앱 개발을 시도해 본 경험이 있으나 번번히 실패한 쓰라림을 가진 사람이라면 이 책을 보자. 우선 현 시점에서 자바를 기반으로 하는 안드로이드 개발 서적을 붙잡고 있다면 과감히 책을 내려 놓고 이 책을 들도록 하자. 안드로이드 개발은 코틀린으로 하는 것이 맞다. 또한 예전 버전의 안드로이드 스튜디오 개발 툴을 설명하는 책을 갖고 있다면 내려 놓자. 개발자에게 생산성을 향상 시켜주는 다양한 기능을 사실상 포기하는 것과 다를 바 없기 때문에라도 최근에 사용되는 안드로이드 스튜디오 (개발툴)을 사용하도록 하자. 혹시 젯브레인사의 개발툴을 이미 능숙하게 사용하고 있다면 금상천화다.

 

디자이너 진짜 힘들었겠다. 글 10줄 보다 그림 한 번이 이해를 돕는다.

 

불과 얼마전까지도 안드로이드 개발을 포기하게 만드는 것 중 가장 큰 허들은 익숙치 않은 XML 언어로 UI를 그린다던지, 화면 전환이나 프로그램 간 데이터 전송과 유지 문제였다. 또한 생명주기라고 하는 극악무도한 ㅎㅎ 앱 구동에 필수적으로 익혀야 했던 난해함들이었다. 이 책에서는 툴 사용법, 클래스 생성, UI생성, 생명주기 순으로 차근 차근 진도를 나가게 된다. 초급자도 정확한 지도를 가지고 출발할 수 있도록 돕는 책이다. 물론 후반부는 중급자 이상에게 흥미로운 부분들로 채워진다.

 

다음으로 중급자의 입장에서 이 책을 본다면, 정확히 397 페이지부터 여러분의 눈을 확 끌어 당기리라 생각한다. 사실 어떤 강의나 교재, 또는 학습의 단계도 처음 부분은 쉽게 쓰든 어렵게 쓰든 초급자들에게 맞추어져 있다. 그래서 중간 이후로 가면 레벨 조절이 실패하기 마련인데, 중급자라면 초급을 대상으로 하든 중급 이상을 대상으로 하든 난이도 보다는 내용에 집중해주기를 바란다. 개발자라면 웹이든 앱이든 일반 데스크톱 상대로 하는 어떤 프로그램이든, 초기에는 문법을 배우고 그것을 구성하는 클래스 또는 파일, 그리고 업무를 효율적으로 사용하게 되는 패턴까지 학습하게 되는데, 사실 가장 목이 마른 것은 그래서 뭘 만들려고 하는 순간 결정적으로 뒷배를 책임져주는 아키텍처는 무엇이고 어떻게 배워야 하는건지 궁금해 할 것이다. 당신이 뼈 속까지 개발자라면 말이다. 데이터를 어떻게 다루고 그것을 어떻게 보여주며 어떻게 처리할 것인가의 문제는 결국 프로그래머라는 직업을 가진 이들의 평생 숙제 아닌가 말이다.

이 책에서 비교적 최근의 아키텍트 구성인 MVVM Jet Pack 구성을 보여준다. 기존에 없던 패턴은 아니겠지만, 이러한 패턴에 대한 스스로의 정확한 정의 또는 인지가 없으면 MVC 와 같은 패러다임에 갇히는 수가 생기거나 새로운 아키텍트의 장점을 전혀 누리지 못하는 상황이 벌어질 수 있다. 책에서도 600 페이지가 넘는 많은 내용으로 충분히 설명하고 있지만, 코틀린 언어 사용에 숙련되어 여러분의 수준을 끌어올리는 학습을 원하거나 안드로이드 아키텍처에 대한 깊은 이해와 실습을 통한 학습은 https://edu.nextstep.camp/ 사이트를 이용하기를 권하는 바이다.

 

영문 레퍼런스를 그대로 옮긴 듯한 책을 여러번 봤지만, 직접 이렇게 테스트코드까지 제시해주는 훌륭한 저자는 지금까지 본 적이 없는 듯 하다. 훌륭하다. 감사하다. 최고다.

 

다음으로 놀라운 점은 아직까지도 갑론을박이 많은 TDD ( Test Driven Development )에 대한 테스트 유용성에 대한 논란을 잠재우러 왔다는 듯이 작정하고 테스트 섹션을 마련했다는 점이다. 사실 어떤 기능이나 새로운 버전의 SDK의 사양은 어디서 배우든 익히면 그만이지만, 개발자로서 개발에 앞서 혹은 개발 중 테스트 코드 작성에 대한 내용은 두 말할 필요없이 중급 이상 개발자들에게 반드시 필요한 내용이지 않을까 싶다. 최근 구직 구인 트렌드를 보더라도 테스트 코드 작성에 익숙한 개발자를 찾고, 테스트 코드를 작성하는 회사를 찾는 개발자가 늘고 있다.

 

마지막으로 언급하고 싶은 내용이 있다. 어쩌면 앱 개발자의 계륵과도 같은 하이브리드 앱 또는 크로스 플랫폼을 통해 앱을 만들 수 있다는 달콤한 유혹들을 많이 받을 것으로 생각한다. One-Source-Multi-Using 은 아주 강한 매력임은 분명하다. 그렇지만 장기적인 관점에서는 네이티브 앱 개발을 절대 멀리하지 말고 한번은 이 책을 통해 반드시 격어 보기를 바라는 마음이다. 이에 대한 추가 설명은 유투브에서 드림코딩 이라는 채널을 운영 중인 엘리님의 동영상을 시청하는 것을 권유하는 것으로 대신 할까한다. https://youtu.be/2AS0WAOX8_8

 

어떤 것을 배우기로 맘 먹는 일은 어렵다. 그러나 그 것을 제대로 배우기에 도움되는 책을 만나기는 더욱 어렵다. 20214월을 시작하는 지금, 벚꽃과 함께 만나게 된 이 책을 통해 안드로이드 앱을 만들어 보고자 한다. 내년 벚꽃 필 무렵에는 혼자가 아니길 바라며 소개팅 앱을 만들어야겠다. 만들거다.

 

 

"제이펍(Jpub) <IT 전문서 리뷰어> 활동을 목적으로 책을 제공받아 작성된 서평입니다."