책정보
제목 : Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 (친절한 문법 설명 + 19개 실습 예제로 배우는 모바일 앱) (개정 3판)
저자 : 강성윤
출판 : 이지스퍼블리싱
책분량 : 700여 페이지, 개념이 어느정도 있어서 책을 빨리 볼 수 있는 분들은 1~2주내에 볼 듯함. (나는 공부를 빡세게 안해서 1달반은 걸린듯하다;;)
책을 읽게 된 계기와 목적.
얼마 전에 읽었던 '함께자라기' 라는 책에서, 본인의 수준과 작업의 난이도에 따라 어떻게 해야 재밌게 잘 학습할까? 하는 4분면으로 설명하는 내용이 있었다. 나는 내 개발실력에 자신감을 얻기 위해서 쉬운 난이도로 학습을 해봐야겠다고 생각하여, 기본서로 쓸 책을 하나 구입하여 읽게 되었다.
이 책에 대한, 나의 평가 :
5점만점에 1~2점을 주고싶다.
주관적인 평가이고, 사람마다 생각하고 느끼는게 다를 수 있으니 참고만 하시면 될 것 같다.
우선, 쉬운 난이도를 원해서 고른 책이지만, 나에게 크게 도움이 되었나?를 생각해보면 딱히 그런 것 같지가 않다.
이 책을 읽으면서 몰랐던 개념들도 익힌 부분들도 있지만, 이제 내 수준에서는 더 이상 기본서로 쓸 책을 이 책 이후로는 더 읽을 필요가 없겠다는 생각이 들었다. (이 책이 3번째 읽는 기본서이기 때문이다)
치명적인 단점이라고 생각하는 것.
일단, 4~5점이 될 수 없는 제일 큰 단점으로는 실습 하기에 용이하지 않다는 생각이 들기때문이다.
한 챕터에 '내용 설명'과 '뒤에 따라붙어 있는 실습'이 있는데, 내용 설명에서는 전체코드가 있어서 바로 실습할 수 있는게 아니라 코드 스니펫(코드조각)을 두고 설명을 하고 있기에, 스니펫 만으로는 내용설명 부분에서는 실습을 제대로 할 수 없었다.
이 책에서 초반부 액티비티 설명까지는 나름 3점정도는 줄 수 있겠다고 생각했는데, ui만들고 하는건 쉽게 따라 하겠지만, 책 뒤로 갈 수록 내용을 보면서 실습을 하려면 코드 조각으로는 돌릴 수 없고 찾아봐야하는 코드가 생기니, 내용설명을 보면서 하는 실습이 막힌다.
뒤에 따라 붙어 있는 실습 예제에서, 다운 받게 되는 실습 코드에서도 이미 필요한 부분은 코딩이 다 되어있고, 해당 챕터의 내용만 따라치거나, 복붙하게 된다. 코드만 놔둔 상태에서 따라치고 복붙하면 기억에 잘 남지 않는다. 차라리 내용 설명에서 바로 코드로는 어떻게 되는지를 해보고 실습할 수 있었으면 좋겠다.
그럼에도 3점은 아니고 왜 1~2점이 되냐면..
내가 머리가 커졌는지 책을 읽으면서 공부에 집중은 안되고 비평적으로 보면서, 이 리뷰 글을 어떻게 쓸까 생각을 꽤나 하게 되었다.
내용 설명에서 이따금씩 강사님의 노하우가 담긴 설명이 있어서 이해가 잘되는 부분들이 있는데, 완전 정석적인 설명은 아닌 부분들이 간혹 있었던 것 같다. 그래도 이런 노하우가 담긴 설명이 훨씬 이해가 잘되기 때문에 좋다고 생각한다.
근데, 비평을 해보자면... 실습코드에서 간단한 코딩 컨벤션이라고 볼 수 있는 수평 띄어쓰기가 제대로 안되어있다. if문에서 띄어쓰기가 이상한데 초보자들이 보고 따라해야하는데 이상하게 습관이 들 수 있을 것 같고, 코드에서 스멜이 약간씩 나는듯 한데..., ide의 워닝을 더 신경써서 실습코드를 만들어야 할 듯하다. 스코프 함수도 왜 이렇게 썼을까 생각드는 부분도 몇 군데 있었다. 설명에서는 지면 때문에 전체 코드는 생략 되는 부분들이 많은 것 같다. 그래서 책만 펼쳐서 무슨 코드를 가져오려해도.. 전체가 아니니까 할 수 가 없을테고, 실습코드 프로젝트를 열어봐야 할 것이다. 컴포즈 챕터에 있던 선언형ui에 대한 설명도 이게 맞나..?라는 생각이 들기도 하였다.
내용 설명에서도 약간 오기로 쓴 부분도 한 두군데 보이는 것 같은데 일일이 체크를 하지는 않아서, 내가 제대로 본게 맞는지는 모르겠다.
근데 이런 오기는 모든 책에서 있기 때문에 어쩔 수 없기도 하다.
그리고 내가 필요한 응용되는 내용의 설명은 없는듯하고, 내용들이 거의 get start의 느낌이다. 이거는 어찌보면 기본서로서 충실하다고 볼 수 있겠다. 그럼에도 굳이 따지자면 프레그먼트 활용하는 방법이 부족한거 같고, 리싸이클러뷰도 응용을 하자면 어려워질테고, 로컬 디비도 책에서는 sqlhelper를 썼던것 같은데 이제 room으로 설명해주는게 더 좋지 않았었나 싶고, android14대응이라고는 하지만, 이제는 모듈에서 라이브러리 디펜던시 넣는거 toml파일로 하는 설정부분 내용으로 변경해야할듯하고......
근데, 이런 심화 응용되는 부분들이 없는 간단한 코드에서도, 집중이 안되고 복잡하게 느껴지던데, 아마도.. 안드로이드의 호환성 문제라던가 권한 문제로 복잡해진 안드로이드 플랫폼의 문제도 있을거라 생각되기도 한다.
그리고 이거는 내 이해력과 경험의 문제인데 4대컴포넌트에서 왜 액티비티, 브로드캐트스 정도만 항상 잘 이해가 되고, 서비스와 컨텐트 프로바이더는 제대로 흡수를 못하겠는지,, 이거는 내가 사용해 본 경험이 부족해서 그런 듯하다.
그리고 내가 이상적으로 생각하는 책은 실습 위주의 책이고, 가장 이상적이었던 실습은 구글 개발자 공식에서 제공했던 코드랩(코스)인데, 코드랩에서는 개념을 설명하면서 바로 실습할 수 있는 코드를 던져준다. 근데 구글이 view를 설명했던 코드랩은 없애버리고, 컴포즈만 남겨둬서 아쉽다.
결론적으로 이제 내가 기본서를 읽을 수준은 이제 어느 정도는 넘은 것 같기 때문에, 나한테는 맞지 않은 것 같다.
나는 1~2점을 줄 수 밖에 없었다...(!?)
내가 진상 리뷰어일지도 모르겠다..;
다른 사람에게 추천하는가?
프로그래밍을 처음 입문하는 사람들에게는 간단한 용어자체도 어렵게 느껴질 것 같다. 기본적인 용어 설명은 별로 없으니 모르는게 있으면 구글링을 해야 할 것이다. 코틀린의 프로퍼티라던지, 자바의 필드라던지부터해서.. 매개변수 인자 등등, 헷갈릴 수 있는 기본적인 프로그래밍 용어에 대해서 알고 있어야 막히는 거 없이 읽을 듯하다. 이 책을 보기 전에 코틀린 기본서를 봐두었다는 전제로 추천을 하거나, 자바로 프로그래밍 한 경험이라도 있어야할듯하다. 책에서 코틀린 언어의 특성을 이용하거나 설명하는 코드도 별로 없지만, 책에 있는 코틀린 설명은 간단하게 있기 때문에 부실하다고 할 수 있겠다. 아니면 이미 다른 플랫폼에서 개발을 해본 사람에게만 추천을 할 수 있을 듯 하다.
유튜브에 이 책 인강도 있는 것 같던데, 초보자들은 그것을 보면 나을지도 모르겠다.
기본서로서의 역할은 하기는 한다. 넓고 여러가지 내용들을 알려주지만 얕은 지식이라고 생각된다.
실제로 구현을 하게 되면 더 많은 기능들이 필요 할 거라서 책에 있는 코드들이 크게 의미가 있지는 않을 듯하다.
설명부분에 코드 스니펫은 어차피 공식문서에서 가져오면 되고, 이 책의 실습 코드에서도 실무에 쓸만한 코드를 가져올 일은 없을 듯하다.
제일 큰 문제가.. 최신 안드로이드 책 출판된 것 중에, 코틀린과 안드로이드 플랫폼 최신에 대해서 대응해둔 책이 몇 개 없기 때문에
다른책을 추천할 것도 없어서, 이 책을 보게 될 듯하다.
근데, 요즘 개발에서 이 책에 있는 내용보다 알아야하는 내용들이 훨씬 많기 때문에, 추가적인 학습이 필요할 것이다.
차라리 좋은 인강이 없나 찾아봐야할지도 모르겠다.
이 책을 읽는 방법에 대해서 추천하는 방식
이 책이 한 챕터에서 내용설명-실습으로 나뉘게 된다.
나는 설명부분에서부터 실습을 했었는데,, 깡샘의 옛날 자바 안드로이드 책도 봤었는데, 거기서는 분명 모듈로 만들어서 실습했던걸로 기억이 있었는데, 내용설명 부분에서는 프로젝트에서 모듈로 만들어라는 것도 없었고, 나중에 뒤에 붙어있는 실습에서 모듈로 생성하라는게 보였다.
그럼에도 나는 내용설명하는 부분에서 실습을 하다가, 코드가 온전한게 있는게 아니고 스니펫(조각)으로 있어서, 책에 있는 설명부분에서는 실습하기 힘들어지게 된다는걸 알았고, 결국 뒷부분가서는 그냥 실습파트에서만 실습했다..
그래서 실습은 애초에 실습 파트에서만 하는 게 낫다고 생각이 든다.
내용 설명 부분에서는 특정한 컴포넌트라던가, 기능들에 대해서 개념만 이해를 하고 빨리 읽고 넘어가자, 어차피 실습 파트에서 제일 핵심적인 기능은 다시 보여준다.
내용 설명 부분에 코드 스니펫에서는 이런 기능이 있다, 정도로만 알고 나중에 구글링 할 수 있게 챕터의 핵심 개념만 익혀두자.
어차피 이 무시무시한 책 분량에서 자잘한 설명을 이해하려고 꼼꼼히 봐둬도 며칠 지나면 뭐가 있었는지 까먹게 된다.
실습 부분에서도 실습앱의 전체를 보게 만드는게 아니고, 이미 만들어둔 앱에서 그 챕터의 부분의 코드만 채워넣는 식으로 된다.
그래서 실습도 그냥 파이어베이스 같은 특정 플랫폼을 사용해보는건 의미가 있다고 생각이 들지만, 코드 부분에서는 그냥 따라쳤다가 될 듯 하다. 실습도 그냥 빠르게 따라치고 앱이 잘 실행되네 하고 넘기면 될 듯하다.
마지막으로 주저리..
내가 생각하는 기본서의 핵심 기능은, 기본서를 읽음으로써 넓고 얕은 지식을 쌓아 내가 필요한 내용을 구글링 할 수 있게 되기만 하면 될 듯하다. 요즘은 구글링 뿐만 아니라 chatgpt도 좋다!
어차피 필요한거는 인터넷에 검색하면 다 있다.
결론적으로 내가 위에서 단점을 많이 적어두었지만, 기본서의 기능을 해주기는 한다. 전반적인 개념과 이런 기능이 있다고 봐두면 될 듯하다.
그리고 이 책에서 다루고 있지 않는 안드로이드에서 주로 쓰는 기능들이 더 많을거라, 이 기본서로는 만족하면 안 될 듯하고, 사람들이 많이 쓰는 기능들이 뭐가 있는지 더 찾아 볼 필요성이 있는 것 같다.
나는 이런 초급서보다는 아키텍쳐, 패턴, 모듈, 젯팩 라이브러리, 코루틴 위주로만 알려주는 중급서 하나 나와주었으면 좋겠다는 생각도 해본다.
'공부 자료 리뷰 (책 서평, 인강리뷰)' 카테고리의 다른 글
프로그래머 철학을 만나다 & 함께 자라기 리뷰 (1) | 2024.07.11 |
---|---|
아토믹코틀린(Atomic Kotlin) 후기 리뷰 서평 (3) | 2024.02.13 |
차라투스트라는 이렇게 말했다. 리뷰 (0) | 2023.09.13 |
유튜브 MVVM Movie App (0) | 2023.05.13 |
유튜브로 안드로이드 공부를 해보자 (0) | 2023.04.29 |