Manifest Android Interview: 질문으로 학습하는 안드로이드 및 컴포즈 가이드북

skydoves·2025년 9월 15일
7
post-thumbnail

Manifest Android Interview는 안드로이드 및 컴포즈에 대한 전반적인 펀더멘탈부터 트렌딩 한 토픽들을 포함하여 내부적인 동작원리 등을 두루 학습할 수 있는 책입니다. 국문 기준으로 약 578 페이지에 달하며 108개의 면접 질문, 162개의 추가적인 실전 질문, 70개 이상의 "Pro Tips for Mastery" 섹션을 제공하여 연차에 상관없이 안드로이드 & 컴포즈 지식에 리프레시가 필요하신 분, 이제 막 학습을 시작하시는 분, 이직 및 취업 면접을 준비하고 계시는 분 등 모든 분들에게 도움이 되기를 바라며 집필을 시작하였습니다.

현시점 책이 출간된 지 약 5개월이 지났습니다. 출간된 첫 달에는 Leanpub과 Amazon의 데일리 베스트셀러 1등에 올랐었고 현재는 한국어, 일본어, 중국어, 스페인어, 독일어를 포함하여 총 9개의 번역본이 출간되었으며, 인도 출판사와의 계약으로 인도 도서 시장에도 본격적으로 진출하기 시작하였습니다.

책을 집필한다라는 것이 결코 쉽지 않았지만, 오래전부터 쌓아온 경험과 지식들을 책이라는 테크니컬 컨텐츠에 꾹꾹 눌러 담아 개발자 생태계에 많은 도움이 되고 싶었습니다. 또한 Jetpack Compose Internals라는 책을 번역하면서 지속적으로 받았던 니즈인 조금 더 실용적인 내용을 담고 싶다는 생각에 결국 약 7개월이라는 시간에 걸쳐 PDF 460 페이지의 영문 책을 먼저 완성하였고, 약 3개월이라는 시간에 걸쳐 한국어 번역본이 출간되었습니다.

어떤 내용을 다루는가?

책 제목이 Interview라는 키워드를 포함하고 있지만 면접을 준비하는 사람 뿐만 아니라, 안드로이드와 컴포즈에 대한 전반적인 지식을 학습하고 싶으신 모든분들께 도움일 될만한 내용들을 선별하였습니다. 특히 책 분량상으로 전부 다루지 못한 내용들은 추가 학습을 위한 참고 자료를 적극적으로 포함하여, 학습하시는 분들께 최대한 정확하고 많은 자료를 전달드리고자 하였습니다.

각 질문은 주로 프레임워크, UI, Jetpack 라이브러리, 비즈니스 로직을 포함한 Android 개발과 Jetpack Compose의 펀더멘탈, 런타임, UI를 다루는 내용에 중점을 둡니다. 내용 중에서 가장 평이 좋았던 "Pro Tips for Mastery"는 우리가 흔히 사용하는 Android 및 Compose API 등에 대한 내부 동작원리 탐색, 저자가 GDE (Google Developer Experts)로 활동하면서 알게 된 다양한 지식 및 노하우들을 담고 있으며, 조금 더 깊은 내용의 학습을 원하시는 분들께 만족을 드리고자 노력하였습니다.

특히 Jetpack Compose를 포함한 Jetpack Library 등과 관련된 내용은 현직 및 전직 구글러분들과 적극적으로 협업하여 내용 오류를 수정하고 정확한 정보전달을 목적으로 수차례 퇴고 작업을 거쳤으며, 내부 동작의 메커니즘을 살펴보되 최대한 현업에서 실용적으로 사용할 수 있는 내용들을 위주로 다루고 있습니다. 따라서 이미 해당 토픽에 대하여 알고 있는 사람들은 좋은 리프레셔가 될 것이며, 새롭게 학습하시는 분들께는 좋은 학습 가이드 역할을 합니다.

이 책을 통해 저자가 가장 강조하고 싶은 부분은 바로 기본기입니다. 좋은 회사일 수록 면접관들은 본질과 기본기에 더 집중하기 때문입니다. 단순히 API나 SDK의 사용법이나 각종 syntactic sugar와 같은 코딩 기법에 집중하기보다는, 얼마나 본질적인 테크니컬 지식에 대해 탄탄하게 이해하고 있고 이를 통해 얼마나 깊은 응용력이 가능한지를 평가합니다.

간단한 일례로, 우리가 매일 사용하는 Toast에 대해서 얼마나 잘 알고 있느냐로 보았을 때 Toast.makeText(context, text, duration).show()와 같은 형태의 API를 일상에서 매일 사용해 왔고 수백, 수천번 이상 사용해 왔기 때문에 우리의 뇌 메커니즘은 이를 "익숙하다"라고 인지하는 대신 "잘 알고 있다"라고 혼동합니다.

여기서 Toast.makeText()를 호출할 때 왜 Context가 필요한지, 그렇다면 Toast를 UI 스레드가 아닌 I/O 스레드에서 수행하면 어떤 동작이 나오는지, Toast를 여러 앱에 걸쳐서 동시에 띄우면 어떤 현상이 일어나는지 등에 생각의 방향을 조금만 바꾸어도 우리는 이를 잘 알고 있었다고 착각했구나를 쉽게 인지할 수 있습니다. 이러한 디테일이 기술 면접의 당락을 결정 짓는다고 봐도 무방합니다.

학습은 언제나 이런 표면적인 익숙함에 머물지 않고, API나 프레임워크의 “왜”라는 본질적인 부분까지 파고들며 이해하려는 태도가 중요합니다. 이러한 호기심과 통찰력이 기본기의 핵심이라고 할 수 있습니다. 따라서 이 책은 질문 형태로 내용을 다루고 있기에 본질적인 내용에 대해 스스로 생각을 해보게끔 유도하고, 본인이 놓쳤던 것에 대해 다시 한번 리마인드 하여 기본에 충실할 수 있도록 하는 것이 최종 목표입니다.

책 집필부터 출간 여정

Manifest Android Interview는 초기에 Kotlin (Language, Coroutines, KMP, Kotlin Compiler Plugin) 및 Gradle과 같은 내용들을 포함하여 약 800 페이지의 분량으로 작성되었습니다. 하지만, 모든 내용들을 한 권의 책으로 담아내는 것은 어렵다는 결론을 내려 안드로이드 및 컴포즈 내용에 집중할 수 있도록 책을 전반적으로 새롭게 구성하였고, 현업의 최전방에 계신 글로벌 엔지니어분들의 리뷰를 거치고 수 차례의 퇴고 작업을 통해 7개월간 완성 되었습니다.

책을 집필하는 과정은 당연히 쉽지 않았습니다. 반드시 끝내겠다라는 일념 하나로 평일, 주말 및 공휴일을 포함하여 7개월간 단 하루도 쉬지 않고 해외 출장이 겹치는 등 바쁜 날이라도 비행기에서 최소 1시간이라도 투자하여 책을 써내려갔으며, 그 결과로 현재의 책이 완성되었습니다. 그 이후로 지속적으로 독자분들과의 소통을 통해 각종 오탈자 및 내용이나 책의 포멧 오류 등을 수정하고 있습니다.

영문 책이 출간 된 이후로 세계적으로 수많은 반응에 힘입어, 각 다양한 나라의 안드로이드 엔지니어분들과 협업하여 번역본을 출시하고 있습니다. 한국어 번역본은 영문 번역본을 출시한 그 다음날부터 작업을 시작하여 약 3개월이라는 시간에 걸쳐 완성하였으며, 일본어 번역본 (Mikami님의 기술 번역) 또한 약 3개월의 시간에 걸쳐 DroidKaigi 2025 행사날에 맞추어 공식 출간이 완료되었습니다. 그 외에 현재, 스페인어, 중국어, 독일어, 베트남어, 인도네시아어 등 총 9개 언어로 번역 완료되었고, 터키어는 현재 번역 작업이 진행 중입니다.

영문 버전의 경우는 아마존에 하드커버 및 페이퍼백 형태로 출판되어 모바일 프로그래밍 분야에서 지속적으로 높은 순위를 차지하고 있습니다.

또한 인도 출판사와의 별도 계약을 진행하여 인도 시장에도 발을 내딛게 되었습니다. 현재 중국 출판사와도 별도 계약을 논의 중이며, 빠르면 내년 초에 중국 시장에도 적극적으로 발을 내딛게 될 예정입니다. 아쉽게도 국내 출판사와는 책 출간 프로세스에서 저자가 이미 진행해 왔던 부분과 출판사 측에서 제공하는 부분에 대해 겹치는 부분이 많고, 출판 구조상 여러 측면에서 협상이 어렵도록 정형화되어있는 부분이 많아 당분간은 진행하지 않는 것으로 결정을 내렸습니다.

결론

Manifest Android Interview라는 저의 첫 책 출간을 시작으로 이후의 다양한 책들이 연속적으로 예정되어 있습니다. 책의 집필-퇴고-피드백/리뷰-n차퇴고-디자인-출판 등의 프로세스를 거쳐 가장 정확한 내용을 전달드리기 위해 시간이 어느 정도 걸리는 부분이 아쉽지만, 이를 통해 개발자분들께서 여러모로 개발자의 커리어 및 학습 과정 등에 도움이 될 수 있다는 부분에서 뿌듯함을 느끼고 있습니다. 특히 DroidKaigi 2025 행사에서 책을 읽고 면접 준비에 실질적으로 큰 도움을 받았다는 많은 분들의 의견을 직접 들을 수 있어서 더할나위 없이 기뻤습니다. 책을 가장 효율적인 형태로 활용하셔서 기본기를 다지고 궁극적으로 커리어나 여러분들이 나아가는 방향에 도움이 되기를 희망합니다.

엄재웅 (skydoves)

profile
http://github.com/skydoves

1개의 댓글

comment-user-thumbnail
2025년 9월 17일

간단한 일례로, 우리가 매일 사용하는 Toast에 대해서 얼마나 잘 알고 있느냐로 보았을 때 Toast.makeText(context, text, duration).show()와 같은 형태의 API를 일상에서 매일 사용해 왔고 수백, 수천번 이상 사용해 왔기 때문에 우리의 뇌 메커니즘은 이를 "익숙하다"라고 인지하는 대신 "잘 알고 있다"라고 혼동합니다.

해당 문단에서 매우 뜨끔해서 반성의 의미로 Toast 내부 구현 코드를 한번 분석해보았습니다...
https://velog.io/@mraz3068/Android-Toast-Deep-Dive

양질의 책 집필 해주셔서 감사합니다!

답글 달기