본문 바로가기
일상

나는 오늘 왜 공부를 못 했을까? feat 깡샘의 안드로이드 프로그래밍

by algosketch 2020. 11. 1.

 코딩을 시작한 지 5분도 안 돼서 문제가 생겼다. 컴퓨터를 고치는 과정은 이전 글에 자세히 올라가 있다.

 이 시간이 가장 공부 열심히할 때인데 그렇게 나는 망했습니다. 내가 진행하고 있는 스터디, 약 8~10주 정도의 계획으로 11월에 끝나는 스터디가 있다. 스터디라 해봐야 온라인 자율 스터디라 안드로이드 공부할 사람들 모아서 진행상황만 공유하는 건데, 진행상황 공유를 매주 일요일에 해서 지금 시간이 가장 불타야하는데 컴퓨터 고치는데 불타오르네 fire~~~ 해서 못 했다.

 물론 핑계다. 많이 불편하긴 하지만 노트북도 있고 코딩이 안 되면 이론이라도 하면 되는데, 의지만 있다면 뭔들 못할까? 후... 저번에도 올렸지만 안드로이드 공부 중이고 지금 진행상황은 1100페이지 중에 850페이지 정도 진행했다. 프런트엔드라고 해야할까? 안드로이드를 구성하는 4대 요소 (컴포넌트), 액티비티, 서비스, 브로드캐스트 리시버, 컨텐트 프로바이더의 기본적인 내용은 끝났다. 남은 내용은 서버, 데이터바인딩, 라이브러리, 코틀린 정도이다. 이제 서버만 공부하면 사실상 안드로이드의 기본적인 공부는 끝난 셈이다. 이미 자바로 개발할 줄 알기도 하고 코틀린은 따로 책 한 권 공부할 예정이다. 라이브러리 안 쓴다고 안 죽는다.(머리는 조금 빠질지도...) 데이터바인딩 그냥 findViewById 쓰면 된다. 물론 다 공부할 거지만 거의다 끝났다고 말하고 싶었다.

 공부하면서 코딩한 건 github.com/HamBP/AndroidProgrammingMissions 여기에 올라가 있다. 근데 저건 도전 문제들이고, 예제를 코딩한 건 깃허브에 올리지 않았다. 예제를 코딩하기 위해 아래 사진만큼 모듈을 만들었다. 모듈 안에서도 런처 액티비티가 2~4개씩 있다.

예제

 내가 공부하고 있는 책은 book.naver.com/bookdb/book_detail.nhn?bid=12594901

 

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

안드로이드 새내기도 앱을 만들 수 있는 체계적 구성!이 책은 각 챕터마다 안드로이드 프로그램과 각 기능이 어떠한 구조로 어떻게 작동하는지 그 원리를 파악하는 데 주력합니다. 그리고 이를

book.naver.com

 이 책이다. 아... 제 점수는 10점 만점에 8점입니다. 책 초반만 본 상태에서 리뷰를 했다면 10점을 줬을 것 같다.

1. 후반으로 갈수록 오타가 많다.

 저자의 블로그를 가면 오타 제보를 받고 있으나 비밀 댓글로 받고 있으며, 오타를 정리한 내용을 찾을 수 없다는 게 감점 요인이다.

2. 안드로이드 스튜디오 업데이트에 따른 호환성 문제.

 저자의 블로그에 루비페이퍼를 제공하고 있으나, 내 생각에 가장 큰 건 android 가 androidx 로 바뀐 것인데 이것에 대해선 언급이 없다. 집필 시점에선 문제가 없는 코드였을텐데 이건 저자 입장에서 조금 억울할 수 있겠다.

3. 코드를 조각조각 보여준다.

 설명 예제 설명 예제 → 도전문제 대략 이런 구성이다. 설명을 읽고서 예제를 작성할 수 있어야 한다는 게 내 생각인데, 이 책에선 불가능한 경우가 많다. 코드를 조각조각 보여주고 일부는 생략되어 있어서 설명만 읽고는 예제 코드를 작성할 수 없고, 설명 부분의 코드보다는 예제 코드를 더 많이 분석하면서 공부하고 있다.

4. 마음에 들지 않는 코드

 문법에 틀린 변수 작명 방식과, 이벤트 관련 인터페이스를 전부 메인 액티비티로 상속 받아 함수의 길이를 길게 만들고 각 코드의 의존성을 높이는 끔찍한 코드를 보여준다. 물론 독립적으로 코드를 짜려면 전체 코드가 길어지기 때문에 책의 지면을 고려하여 그럴 수 있다고 생각했으나, 이와 관련된 내용은 언급조차 없다는 것이 아쉬웠다. 입문자들이 따라하기에 가장 적절한 코드는 예제 코드라고 생각하는데 이 책의 코드를 그대로 따라하기엔 내가 보기에도 문제점이 많다.

 

 위의 내용을 다 고려해서 8점이다. 호환성 부분은 어쩔 수 없기도 하고 다 감안하더라도 책 내용 자체는 좋다고 생각한다. 1000페이지가 넘는 분량을 감당할 수 있는 분에게는 추천한다. 다만 책을 살 때 이미 발행된지 이미 1~2년에 지났기 때문에 업데이트가 많은 안드로이드의 경우 호환성 문제로 고생할 수 있다는 것을 인지하고 구입하길 바란다.

 공부가 거의 끝난 지금 생각해보건데, 안드로이드는 워낙 내용이 많기 때문에 코드를 익히는 것은 비효율적이라 생각한다. 예를 들어 스레드를 공부한다고 치면 코드 자체를 익힌다기 보다 스레드가 동작하는 원리를 익히는 것이 더 좋다. (사실 스레드는 자주 쓰기도 하고 코드가 쉬워서 외워질 것이다.) 예를 들어 "어떤 것을 구현하기 위해 사용되는 라이브러리에는 옵저버 패턴이 적용됐다." 처럼 알고 있으면 "어떤 코드가 필요하겠구나"를 느끼게 되는 정보들을 기억하는 게 더 좋아보인다. 그래서 디자인 패턴을 알고 있으면 좋은데 디자인패턴이 안드로이드보다 어려운 것 같다.

 나는 안드로이드 이후에 공부할 것으로 코틀린, 알고리즘(이건 취미), (node.js 혹은 spring) 이 세 가지를 동시에 공부할 예정이다. - 힘들겠지만 한 가지를 공부하는 것보다 세 가지 정도를 동시에 공부하는 것이 더 좋다. 내 의견이 아니고 연구한 사람들이 그렇다고 함 -

 1100페이지짜리 책을 맛 봤기 때문에 이제 400페이지는 좀 귀여워 보인다.

 사실 더 많이 하면 좋겠지만 저거라도 다 끝내고 내년 1학기를 시작한다면 꽤 성공한 거 아닐까라는 생각을 해 본다.

'일상' 카테고리의 다른 글

카메라 후기(?) (캐논 g7x mark2)  (0) 2020.11.12
조금 늦은 컴퓨터 조립 후기  (0) 2020.11.05
컴퓨터 고장, 자동 재부팅 문제  (2) 2020.11.01
전역 후 근황  (1) 2020.10.06
전역 D-Day, 그동안의 군생활  (3) 2020.08.15