아주 오랜만의 서평 — 안드로이드 프로그래밍 Next Step

Alex Lee
3 min readOct 21, 2017

--

저자 노재춘님은 대학교 같은 과 한학년 선배지만, 복학후 친구처럼 지내온 사이입니다(이하 형). YES24에서 형의 이름을 검색해보면, 책이 두권 나오는데 따라서 이 책은 형의 첫 저술은 아닙니다. 다만, 전작은 공저의 형태를 띠고 있으니 이번 책이야말로 형을 오롯이 드러낼 수 있는 첫 작품인 셈입니다.

갑자기 결론부터 꺼내든다면, 이 책은 기술서이기 전에 ‘글은 어떻게 쓰는가’에 대한 모범이라고 생각합니다. 안드로이드에 관심이 있으면 물론이거니와, 잘 쓴 글을 보고 싶고 또 따라 써서 배우고 싶은 분에게 추천드리고 싶습니다.

단순히 Activity를 직접 상속해서 화면을 만든다면 호출 순서는 별 문제가 되지 않는다. 그런데 많은 앱에서는 리소스를 생성해서 사용하고 반납 또는 제거하는 공통 로직이 많이 사용된다. 예를 들어보자. 일반적인 앱에서는 로그인/로그아웃 상태를 갖고 있거나 화면 로딩 속도를 체크하는 등의 공통 로직이 있어서, 상위 클래스로서 BaseActivity를 사용하는 경우가 많다. 상위 클래스의 onResume() 메서드에서 객체 인스턴스를 1개 생성한다고 해보자. onResume()에서 생성한 인스턴스를 가지고 하위 클래스에서 로그를 남길 수도 있고, 뭔가 다른 추가적인 작업을 할 수도 있다. 그런데 super.onResume()을 먼저 호출하지 않고 나중에 호출하면 무슨 일이 생길까? 바로 개발 시에 자주 보는 NullPointerException이 발생한다. 그리고 onPause() 메서드에서는 super. onPause() 메서드를 먼저 호출하고서 다른 로직을 실행하면 이미 반납된 자원을 사용하는 경우가 생길 수 있다.

형의 글은 기본적으로 호흡 조절이 능수능란합니다. 간결함과 만연함이 교차하면서 독자는 느슨해지고 딴 생각을 하는 것을 피할 수 있습니다. 중간중간 나오는 의문문은 독자의 호기심을 자극하면서 그때그때 중요한 점을 짚어냅니다. 특히 (출판사에서 자제를 요청할 정도의) 엄청난 노력을 들인 퇴고는 군더더기 없는 결과물을 가져다 주었습니다. 이 책을 읽으면서 ‘어떤 논리를 이해하는 것이 이렇게 수월했나’라는 느낌을 받았다면, 형용사 부사 접속사 등의 (안쓰는 것을 포함한) 수식어 선택에 들인 공 덕분입니다. 글을 쓰다보면 문장을 만들고, 또 문장을 만들다 보면 어떻게 잇고 어떻게 보충해야할지가 늘 고민입니다. 수년간 그 고민을 했을 형이 참으로 고생이 많았을 거라는 생각도 들지만, 무엇보다도 이 책은 2017년 오늘을 사는 우리에게 글에 대한 사랑이 문학에만 있지 않다는 소리없는 울림을 전해줍니다.

이미 오프라인 주변 분들에게 권할 만큼 권했으니, 이제는 온라인입니다. 이 가을, 레플리칸트는 없지만 안드로이드는 있는 세상에 당신을 초대합니다.

--

--