입문부터 안드로이드 개발자 취업 면접 준비까지 (오준석의 안드로이드 생존 코딩)
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다...만
진심이 담겨있습니다. 허위 사실 유포는 😎일절 없음.
대부분의 안드로이드 개발 서적은 입문서 역할을 하고 있다. 처음 안드로이드 개발을 하는 분들을 위한 서적이란 뜻이다. "오준석의 안드로이드 생존 코딩" 역시 입문서에 가깝다. 그렇다면 입문 레벨이 아닌 분들에게 이 서적은 의미가 없을까?
입문 수준은 아니지만 중급도 아닌 개발자라면
본 서적의 4장부터 학습을 하면 된다. 4장도 코틀린의 기본을 다루지만 왜인지 모르고 사용하는 것이 있을 수 있다. 예를 들면 SAM 변환이 그렇다. (p.112) 편하게 OnClickListener를 사용하고 있지만 추상화되는 과정을 모르고 쓰는 경우가 많다.
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(p0: View?) {
TODO("Not yet implemented")
}
})
Java로 안드로이드를 개발했던 분들이라면 위 형태가 익숙하실 것이다. OnClickListener처럼 인터페이스에 메소드가 하나만 포함된 경우라면 SAM 변환으로 인해 아래처럼 표현이 가능하다. 요즘 코틀린으로 안드로이드 개발을 시작한 분들은 이것이 더 익숙하실 것이다. override 함수가 포함된 예시에서 바로 아래 예시로 변하는 과정을 "안드로이드 생존 코딩"에서 잘 보여주고 있다.
butoon.setOnClickListener {
// Something
}
안드로이드 실무 경험이 풍부한 개발자라면
마치 사전을 쓰듯 필요한 것만 꺼내서 실습을 하면 된다. 필자의 경우 그렇게 학습을 했다. 주로 정보 제공성 서비스를 많이 다루었기에 센서(8장)나 위젯(11장)을 다루는 것에 난해함을 느낀다. "안드로이드 생존 코딩"에서 다양한 센서를 다루지는 않지만 센서를 다룰 때 주의해야할 부분들을 잘 알려준다. 어떤 시점에서 센서를 등록(p236)하고 어떤 시점에서는 센서를 해제(p.238)하여 배터리를 알낄 수 있다는 것을 가이드 해준다. 즉, 라이프사이클을 제대로 파악해야 센서를 자연스럽게 동작하도록 개발할 수 있음을 배울 수 있다.
위젯도 마찬가지로 다양한 형태를 알려주는 것은 아니다. 하지만 앱을 직접적으로 켜서 사용하지 않더라도 백그라운드에서 어떤 원리로 앱 내부의 서비스를 이용할 수 있는지(p.329) 잘 설명하고 있다. 물론 직접적으로 위젯을 작성하는 것(p.335)도 여기서 알려준다.
안드로이드 개발자로 취업을 준비한다면
구글에서 "안드로이드 개발자 면접"이라고 검색을 하면 다양한 자료가 나온다. 여러 자료를 보면 비슷한 주제가 겹치는 것이 보인다. 이런 부분을 "안드로이드 생존 코딩"을 통해 실습을 하면서 몸으로 터득할 수 있다. 그냥 외우는 것보다 훨씬 효율적으로 익히면서 면접 등에서 설명하기 편할 것이다. 면접에 자주 등장하는 안드로이드 개념을 본 서적에서 찾으면 대략 다음과 같다.
- AndroidManifest에 대한 설명 (3장, p.65)
- 코틀린의 장점 (4장, p.88)
- let, with, apply, run 함수에 대하여 설명하시오. (4장, p117~118)
- SharedPreference로 데이터 저장하는 방법 (5장, p,150)
- 메인 스레드와 워커 스레드 (6장, p.178)
- 액티비티의 생명주기 (8장, p.229~233)
- 안드로이드 4대 컴포넌트에 대한 간단한 설명 (9장, p.261)
- 프래그먼트의 생명주기 (9장, p270~271)
- 서비스의 생명주기 (11장, p.330)
- Room 데이터베이스 (13장, p.392)
- ViewModel의 생명주기 (13장, p.400~401)
물론 위에 언급한 각 주제에 대한 설명이 서적에 충분하지 않을 수 있다. 간단하게 먼저 숙지한 후 실습을 하고 다시 다른 자료를 찾아본다면 이해하기가 훨씬 수월할 것이다.
다시 언급하지만 이 서적은 입문서이다. 중급 이상의 개발자에게는 큰 메리트가 없을 수 있지만 안드로이드 개발을 처음 접하는 분들이라면 재밌고 유익하게 학습하기에 이보다 좋은 선택을 찾기는 어려울 것이다. 아무쪼록 🤩즐거운 안드로이드 개발 시간이 되길 바란다.