Study

안드로이드 공부하면서 읽었던 서적들 (2020년)

미스터머글 2021. 2. 21. 23:47
728x90
반응형

SBS 스토브리그 3화 캡처, 다시 봐도 너무나 믓찌다.

남들이 비웃는게 무서워서 책으로도 안배우면 누가 저한테 알려줍니까? 그럼 사람들이 알려줄때까지 기다릴까요? 일년 뒤에도 야구 모르는게 그게 진짜 창피한거 아닙니까?
- SBS 드라마, 스토브리그 3화, 백승수의 대사 (남궁민 배우분)

 

드라마의 대사가 개발서적을 사도록, 읽도록 만들었다. "개발은 책으로 배우는게 아니야."라는 말을 어디서 주워들어서 그냥 부딪치고 코드를 짜고 고민만 했던 과정을 겪었다. 하지만 책이든 사람이든 동영상이든 좋은 컨텐츠라면 스스로를 성장시키는데 촉매제 역할을 한다. 너무 늦게 알았지만 백승수의 대사처럼 이 이상으로 창피하기 전에 공부할 수 있다는 점에서 행운이라고 생각하기로 했다.

 

안드로이드를 이해하려면 안드로이드 서적만 보는게 능사는 아니었다. 그래서 코틀린, 리액티브 프로그래밍 서적도 같이 구매했다. 2020년에 내가 고른 서적은 아래와 같은 기준으로 골랐다.

 

스스로 부족한 부분이 많았다. 안드로이드 기본적인 개념을 쉽게 이해시킬 수 있는 서적이 필요했다.
가능하면 2019년 이후의 서적이길 바랬다. 제트팩과 같이 비교적 최근에 적용된 개념도 공부하고 싶었기 때문이다. 

 

 

  • 스스로 부족한 부분이 많았다. 안드로이드 기본적인 개념을 쉽게 이해시킬 수 있는 서적이 필요했다.
    • 가능하면 2019년 이후의 서적이길 바랬다. 제트팩과 같이 비교적 최근에 적용된 개념도 공부하고 싶었기 때문이다. 
    • 샘플 코드가 코틀린으로 되어 있는 것을 원했지만 위 조건들을 만족하는 서적 중에는 코틀린 베이스의 서적은 없었다.
    • 선택한 서적 : 깡샘의 안드로이드 프로그래밍 (3쇄)
  • 앞으로 안드로이드는 코틀린 베이스로 만들어 질 것이기에 코틀린 지식도 필요했다.
    • 비교적 샘플 코드가 많고 이해하기 쉬운 형태로 되어 있는 것을 원했다.
    • 테스트 개념이 부족했기에 테스트 파트가 수록되어 있는 것을 골랐다.
    • 선택한 서적 : 코틀린 프로그래밍 쿡북
    • 2018년도에 나온 서적이라서 Anko처럼 현재 쓰이지 않는 개념들도 들어가 있었지만 그 외 부분은 위 조건을 만족했기에 이 서적을 구매했다.
  • 안드로이드는 프레임워크다. 결국 아키텍처 위에서 만들어야 완성도가 높다.
    • DI, 제트팩, Rx 등 안드로이드 아키텍처에 들어갈 최신 요소들이 설명된 서적을 원했다.
    • 위에 언급한 요소들은 한권의 책으로도 만들 정도로 중요하고 난이도가 낮지 않은 것들이다.
    • 하지만 겉핥기식으로라도 경험을 하면 나중에 혼자서 공부할 때 방향성을 잡을 수 있다.
    • 선택한 서적 : 아키텍처를 알아야 앱 개발이 보인다
    • 안드로이드 중급 서적은 정말 찾기 힘들다. 귀한 서적을 만들어 준 저자와 출판사에게 고마울 따름이다.
  • 비동기 처리를 언급할 때 코루틴 아니면 Rx가 항상 언급된다.
    • 최근 구직 시장에서 Rx가 비교적 더 선호되는듯 하다.
    • Rx 기본개념부터 제대로 설명된 서적을 찾으려 했다.
    • 위 "아키텍처를 알아야 앱 개발이 보인다"의 Rx 파트를 공부한 뒤 더 깊게 공부하려는 의도였다.
    • 선택한 서적 : 코틀린 리액티브 프로그래밍
    • 다행히 RxKotlin으로 리액티브 프로그래밍을 설명한 서적이 있었다. 행운이 아닐 수 없다.

 

 

각 서적의 선택 이유를 설명했다. 이제 이 서적들을 읽으면서 어떤 느낌을 받았는지 남겨보도록 한다. 아래 서적 이미지는 모두 필자가 직접 찍은 사진이다. 이는 직접 구매하여 읽고 공부했음을 인증하는 증거이다. 또한 아래 서적의 순서는 필자가 학습한 순서이다.

 

 

 

🤖  깡샘의 안드로이드 프로그래밍

  • 출판사 : 루비페이퍼
  • 저자 : 강성윤

기본적으로 어떤 분야이든 기초서는 내용이 방대하다. 그렇기에 제대로 구성하지 않으면 처음부터 끝까지 학습하기가 쉽지 않다. 그런 점에서 "깡샘의 안드로이드 프로그래밍"은 기본적인 구성이 충실히 채워져 있다. 필자는 이미 안드로이드 스튜디오의 기본적인 부분을 익숙하게 다루지만 그렇지 않은 사람들에게도 충분히 친절할 정도로 앞부분에 설명을 잘 해놓았다.

 

특정 기능만 학습하고 싶은, 즉 사전식으로 학습을 원할 때도 괜찮은 참고서가 될 것으로 보인다. 샘플코드가 파트별로 나누어져있기에 이전 파트를 학습하지 않아도 독립적인 샘플 코드로 학습이 가능하다. 게다가 코드를 직접 다운로드 받지 못한다고 하더라도 모든 코드가 책에 기재되어 있기 때문에 문제없이 학습할 수 있다.

 

모든 코드가 코틀린으로 되어 있지 않은 점은 아쉽지만 마지막 부분에 코틀린을 학습할 수 있는 부분이 있어서 코틀린이 처음인 분들에게는 오히려 이 서적이 최선의 선택일 수 있을 것 같다.

 

4대 컴포넌트도 적절하게 다루고 있고 은근히 많이 쓰이는 서버푸시나 소켓 프로그램도 다루고 있는 점은 이 서적의 장점이라고 볼 수 있다. 또한 아직까지도 AAC를 원활히 다룰수는 없어서 앞으로도 볼일이 많을 것 같다.

 

 

자세히보면 공부한 부분을 체크하려고 포스트잇 책갈피를 붙여놓은 것을 볼 수 있다. (나 열심히 했당)

 

🏗  아키텍처를 알아야 앱 개발이 보인다

  • 출판사 : 비제이퍼블릭
  • 저자 : 옥수환

아마도 가장 오랫동안 탐독한 서적일 것이다. 이유는 단 하나. 대표적인 DI(의존성 주입)로 소개되는 Dagger2가 쉽게 이해되지 않아서이다. 처음에는 "아~ 이런 것이구나"라고 했던 것이 학습할수록 머릿속에 물음표를 가득하게 만들었다. 물음표의 하이라이트는 이 서적 가장 마지막 파트에 있었다. 마지막 직전 파트까지 학습했던 것을 총동원하여 하나의 앱을 만드는 샘플을 마지막 파트에서 진행한다. 이 때 Dagger를 이해하지 못하면 막히는 부분이 있는데 결국 Dagger 파트를 다시 펼쳐서 여러번을 읽은 다음에 마지막 파트를 이해할 수 있었다. 그냥 Dagger 파트를 읽기만 한게 아니라 관련 자료를 찾아보고 비슷한 샘플 코드도 찾아보면서 공부했기에 4권의 서적 중 가장 오랫동안 학습한 서적이 되었다.

 

이 서적으로 오랫동안 학습하는 것은 당연할 수 밖에 없었다. 첫 목적이 아키텍처에 필요한 요소를 겉핥기식으로 학습하려고 했으니 깊게 이해하려면 관련 자료를 많이 찾고 직접 코드 뒷부분을 살펴보는 과정을 겪어야 했다. 그럼에도 아직도 Dagger를 제대로 쓸 줄 모른다. 여기서 나오는 Jetpack이나 RxJava도 자유자재로 쓰지는 못한다. 그래도 이 요소들을 다루면서 막히는 부분이 있을 때, 학습하면서 막혔던 경험을 바탕으로 솔루션을 찾는 방향을 추측할 수 있게 되었다. "이번 프로젝트에는 RxJava를 사용하겠어."라고 결심을 한다면, 단순히 '어떻게 쓸 것인가'가 아닌 '어느 포인트에서 어떤 목적으로 무엇을 쓸것인가'를 고민하게 되었다.

 

아마도 이 책을 다시 들여다 볼 일은 많지는 않겠지만 중요한 경험치를 준 것은 확실하다. 더군다나 국내에 매우 드문 안드로이드 중급 서적이기에 초급을 벗어나고자 하는 분들에게는 추천하고 싶다. 국내 네임드 개발자이신 옥수환님께서 만드셨는데 옥수환님이 직접 운영하는 오픈톡방에서 모르는 것을 물어볼 수도 있다. 나 역시도 공부하다가 모르는 것을 오픈톡방에 물어본 적이 있다. (아쉽게도 시원하게 해결은 못했지만)

 

여담 : 표지만 보고 오해하지 말자. 만화책도 아니고 기초서는 더더욱 아니다. 나도 왜 이런 디자인이 채택된건지 궁금하다.

 

 

 

🍳  코틀린 프로그래밍 쿡북

  • 출판사 : 터닝포인트
  • 저자 : 아난드 셰카르 로이, 라시 카란푸리아

이 서적을 읽기 전에는 마치 Java를 쓰는 것처럼 Kotlin을 쓰고 있었다. 코틀린의 장점을 절반만 쓰는 기분이랄까. 이 책의 매력은 중간중간에 코틀린만의 장점을 알려주는데 있다. 예를 들어 "Chapter.3 클래스와 오브젝트"에서는 기본적으로 코틀린은 정적 타입 언어라는 특징, 코틀린 컴파일러는 불변 값을 추적하고 필요할 때마다 안전하게 캐스팅한다는 등의 안내를 해준다.

 

물론 다른 코틀린 서적에서도 이런 장점들을 알려줄 것이다. 그럼에도 이 서적이 인상적인 것은 "선실습 후이해"하도록 구성한 것에 있다. 파트 초반에는 소개하려고 하는 것의 개념을 간단하게 설명해주고 바로 실습하는 부분으로 넘어간다. 실습으로 넘어갈 때도 바로 실습코드를 보여주는 것이 아닌 해당 실습코드는 어떤 환경에서 어떻게 결과를 확인할 수 있는지 등의 "준비" 파트가 존재한다. 나중에는 이 준비 파트가 반복적으로 나와서 굳이 읽을 필요는 없지만 이 준비 파트가 있음으로 개발 환경 때문에 실습의 어려움이 생기는 것을 최소화 한다. 게다가 이 준비 파트에는 샘플코드가 어디에 있는지도 알려준다. (어쩜 이렇게 친절할 수가)

 

다만 요즘은 거의 쓰이지 않는 Anko가 이 서적에서 약간의 비중을 차지한다. 그래서 Anko 뒷 파트를 학습할 때 Anko가 계속 등장해서 난감한 경우를 맞이할 때도 있다. 물론 이 허들은 높지 않지만 만약 프로그래밍 경험이 적은 사람들에게는 높게 느껴질 수도 있다. 혹시나 그런 분들이 있다면 필자의 깃헙을 참고하길 바란다. 

 

그리고 이 서적에는 안드로이드, 테스팅, 네트워크, 웹서비스 등도 경험할 수 있다는 장점이 있다. 자바로만 안드로이드를 다뤘던 분들이거나 코틀린으로 웹서버를 만들어보고 싶은 분들에게 입문서로 추천할 수 있다.

 

 

코틀린 리액티브 프로그래밍을 공부할 때는 포스트잇 책갈피를 잃어버렸다. (아쉽. 주르륵)

 

 

💙  코틀린 리액티브 프로그래밍

  • 출판사 : 에이콘
  • 저자 : 리부 차크라보티

개인적으로 4권의 서적 중 가장 표지가 마음에 든다. 이건 생각보다 무시 못한다. 책을 쥐고 볼 때부터 촉각과 시각적으로 긍정적인 이미지를 주면 왠지 더 공부하고 싶게끔 만든다. 적어도 필자는 그랬다. 다른 서적보다 더 럭셔리해보인달까? 굳이 개발서적이 아닌 다른 서적을 구매할 때도 이 부분은 영향을 많이 끼치는 것 같다.

 

Rx를 "아키텍처를 알아야 앱 개발이 보인다"라는 서적을 통해 처음 접하다보니 아는 것보다 모르는 것이 훨씬 많았다. 게다가 요즘 Rx의 중요성이 커지다보니 제대로 이해하지 못할까봐 걱정이 많았다. 그런데 이 서적으로 학습하는 과정에서 그 걱정을 싹 씻었다. 물론 지금도 자유자재로 사용하지는 못하지만 우려했던 것보다 훨씬 쉬웠고 왜 Rx를 다뤄야하고 어떤 경우에 효율적인지 잘 안내하고 있다.

 

무엇보다 Kotlin을 베이스로하는 RxKotlin이기에 바로 안드로이드 코드에서 사용해 볼 수 있다는 점이 매력적이다. RxJava와 매우 유사하지만 아무래도 코틀린의 특징을 그대로 살리면서 Rx를 활용할 수 있기에 이중으로 학습하지 않아도 되는 점에서 시간절약이 가능하다. 물론 이 서적은 리액티브를 알려주는 것에 포커싱이 맞춰져 있기 때문에 이후에 RxJava를 사용할 때도 큰 어려움은 없을 것으로 보인다. 조금의 문법 차이가 있을텐데 코틀린과 자바의 차이를 경험해본 분이라면 금방 적응할 것으로 보인다.

 

표지도 마음에 들고, 걱정을 기대로 바꾸기도 했으며, 앞으로도 Rx를 많이 쓸 것이기에 이 서적도 첫번째 서적인 "깡샘의 안드로이드 프로그래밍"처럼 당분간은 고이 모셔둘 예정이다. 분명히 앞으로도 몇번 더 들여다 볼 일이 있을 것이다. 언젠가 Rx와 관련된 포스팅을 더 하려고 하는데 이 서적이 그때 큰 도움이 될 것이다.

 

 

이미지 출처 : https://www.wired.com/story/favorite-books-q4-2018/

 

2021년에는 "아키텍처를 알아야 앱 개발이 보인다" 그리고 "코틀린 리액티브 프로그래밍"처럼 안드로이드 개발자를 위한 중급 서적을 좀 읽어보려고 한다. 물론 2020년처럼 4권이나 독파할 것 같지는 않다. 1권이라도 제대로 독파했으면 하는 바램이다. 만약 독파한다면 이렇게 한꺼번에 리뷰하는게 아닌 독파한 시점에서 1권씩 리뷰를 해보려고 한다.

 

그러니... 열심히 해라고 응원 좀... (구걸구걸)

728x90
반응형