Manifest Android Interview 한국어
Manifest Android Interview 한국어
GDE의 노하우가 담긴 질문으로 학습하는 안드로이드 기술 면접 가이드
도서 소개
Leanpub 및 아마존에서 데일리 베스트셀러에 올랐던 Manifest Android Interview의 한국어 번역본의 사전판매가 드디어 시작되었습니다. 인터뷰 책이라는 타이틀을 가지고 있지만, 기술 면접을 준비하기 위해 안드로이드 전반적인 개념에 대한 리프레시가 필요하신 분, 순수하게 기술적인 탐구와 학습을 원하시는 분, 혹은 초급 면접관으로서 면접 질문에 대한 토픽이 필요하신 분 등 목적과 필요에 따라 유용하게 활용되기를 바랍니다.
Manifest Android Interview는 상세한 답변이 포함된 108개의 면접 질문, 162개의 추가 실전 질문, 50개 이상의 “Pro Tips for Mastery” 섹션을 통해 여러분의 안드로이드 개발 전문성을 향상시키기 위해 설계된 포괄적인 가이드북입니다. 면접 질문은 주로 안드로이드 개발(프레임워크, UI, Jetpack 라이브러리, 비즈니스 로직)과 Jetpack Compose(펀더멘탈, 런타임, UI)에 중점을 둡니다.
각 질문은 심층적인 설명을 포함하며, 안드로이드와 Jetpack Compose에 대한 체계적인 학습 경로를 안내하고 핵심 개념에 대한 이해를 돕습니다. 모든 질문의 후미에는 실제 면접 상황을 시뮬레이션하도록 설계된 실전 질문이 있어, 문제 해결 능력을 다듬고 기술 토론을 효과적으로 대비할 수 있습니다.
이 책에서 제공하는 내용을 넘어, 더 깊이 공부하고자 하는 분들을 위해 관련 자료와 추가적인 참고 문헌이 포함되어 있습니다. 또한, 어려울 수 있는 용어에 대해 가능한 한 각주를 제공하려 노력했으며, 이를 통해 초보자도 어려운 개념을 쉽게 파악하고 이해도를 높일 수 있도록 하였습니다.
“Pro Tips for Mastery” 섹션은 고급 주제를 더 깊이 다루며, 특히 Compose 챕터에서는 널리 사용되는 API들의 내부 구조를 파헤치고, 현업에서 실용성있는 API에 대한 딥다이브를 제공하여 시니어 개발자분들 또한 흥미 있게 읽어보실 수 있습니다. 아울러 중급 개발자들은 해당 섹션을 통해 안드로이드에 대해 조금 더 깊이 이해하고, 기술적 문제에 대한 분석적인 시야을 기르는 데 좋은 자료가 될 것입니다.
이 책이 새로운 관점을 얻고, 문제 해결 능력을 향상시키며, 안드로이드 개발 및 생태계에 대한 포괄적인 이해를 쌓는 데 도움이 되기를 바랍니다. 중요한 면접을 앞두고 계시든, 안드로이드 개발 실력을 향상 시키기 위해 학습을 하고 계시든, 단순한 구현을 넘어 그 본질을 이해하고, 다양한 접근 방식을 실험하며, 호기심과 열정을 가지고 끊임없이 학습해 나가기를 바랍니다.
이 책의 비하인드 스토리, 책에서 다루는 내용 및 다루지 않는 내용 등에 대하여 궁금하시다면 Manifest Android Interview: The Ultimate Guide to Cracking Android Technical Interviews 블로그 포스트를 통해 확인하실 수 있습니다.
현재 이 책은 사전판매 진행 중입니다. Chapter 1. Android Interview Question에 대한 번역이 모두 완료되었으며, Chapter 2. Jetpack Compose Interview Question에 대한 번역은 7월 말까지 완성될 예정입니다. 사전 구매하신 분들께서는 이메일로 업데이트 내역을 지속적으로 받아보실 수 있습니다. 현재 완성도 (82%) 기준 PDF 491 페이지 분량이며, 모든 번역이 완료되는 시점에는 PDF로 약 600 페이지의 분량으로 마무리될 예정입니다.
Team Discounts
Get a team discount on this book!
이 책이 포함된 번들
독자 추천사

Manuel Vivo
Staff Android Engineer at Bumble, 前 Google Android DevRel
Manifest Android Interview는 이론 중심의 기술 면접을 준비하는 안드로이드 개발자들에게 필수적인 가이드입니다. 이 책은 깊이 있는 기술적 통찰력, 실용적인 예제, 그리고 세심하게 구성된 ‘Pro Tips for Mastery’ 섹션을 자연스럽게 결합 하였습니다. 이 책이 전하는 귀한 인사이트를 통해 안드로이드 면접을 자신 있게 헤쳐나가고 성공하는 데 매우 귀중한 자료가 될 것입니다.

Matt McKenna
Senior Android Engineer at Block, Android GDE
Manifest Android Interview는 기본기를 다지고, 면접을 준비하며, 모범 사례를 다시 살펴보기에 완벽한 책입니다. 명확한 구조, 필요한 정보를 찾아보기 쉬운 형식, 그리고 심사숙고되어 선별된 질문들은 안드로이드의 핵심 개념을 배우고 복습하는 데 있어 최고의 자료입니다.

Alejandra Stamato
Lead Android Engineer at HubSpot, 前 Google Android DevRel
세심하게 만들어진 질문, 통찰력 있는 팁, 명확한 코드 샘플을 통해 Manifest Android Interview는 핵심 안드로이드 개념(가령, 매니페스트 파일, 컴포넌트 생명주기, 인텐트, 서비스, 콘텐츠 프로바이더, 브로드캐스트 리시버, 딥링크)을 잘 설명할 뿐만 아니라, ViewModel부터 뷰 시스템, Jetpack Compose 및 다양한 모든 것에 이르기까지 안드로이드 애플리케이션을 구축하는 모든 측면을 탐색하는 데 도움을 줍니다. 여러분의 전문성 수준에 관계없이, 이 책은 모두에게 무언가를 제공합니다. 꿈의 직장을 준비하거나 단순히 우리 모두가 사랑하는 플랫폼에 대한 전문성을 키우려는 경우 등 이 책은 여러분의 여정에서 귀중한 동반자가 될 것입니다.

Simona Milanovic
Senior Android Developer Relations Engineer
이 책의 저자인 재웅(안드로이드 커뮤니티에서 skydoves로 잘 알려진 분)님의 신간 “매니페스트 안드로이드 인터뷰(Manifest Android Interview)“는 면접을 준비하거나 안드로이드 기술을 연마하고 싶은 모든 사람에게 필수입니다. Compose 런타임과 UI의 기본부터 세부적인 내용까지 모든 것을 담고 있는 광범위하 고 상세하며 체계적인 자료입니다. 저는 개인적으로 Jetpack Compose 부분에 특히 집중했는데, 면접 준비에 매우 유용하다고 느꼈습니다. 실제 면접 내용과 매우 유사한 방식으로, 어렵고 실용적인 “이유“와 “방법“에 대한 답을 꾸준히 제시하여 문제 해결 능력을 향상시키고 학습할 수 있도록 도와줍니다. Compose를 처음 접하는 분이든 면접을 준비하는 분이든, 이 책은 안드로이드 지식과 면접에 대한 자신감을 확실히 높여줄 것입니다.
목차
- 서문 (Preface)
- 추천사 (Testimonial)
- Manuel Vivo (Staff Android Engineer at Bumble, 前 Google Android DevRel)
- Matt McKenna (Senior Android Engineer at Block, Android GDE)
- Alejandra Stamato (Lead Android Engineer at HubSpot, 前 Google Android DevRel)
- Simona Milanovic (Senior Android Developer Relations Engineer, Google Android DevRel)
- 이 책에 대하여
- To. 면접을 준비하시는 분들께 드리는 말
- To. 면접관 분들께 드리는 말
- 이슈 제보 및 토론
- 0. 안드로이드 면접 질문
- 카테고리 0: 안드로이드 프레임워크
- Q) 0. 안드로이드란 무엇인가요?
- Q) 1. 인텐트(Intent)란 무엇인가요?
- Q) 2. PendingIntent의 목적은 무엇인가요?
- Q) 3. Serializable과 Parcelable의 차이점은 무엇인가요?
- Q) 4. Context란 무엇이며 어떤 유형의 Context가 있나요?
- Q) 5. Application 클래스란 무엇인가요?
- Q) 6. AndroidManifest 파일의 목적은 무엇인가요?
- Q) 7. Activity 생명주기를 설명해주세요
- Q) 8. Fragment 생명주기를 설명해주세요
- Q) 9. Service란 무엇인가요?
- Q) 10. BroadcastReceiver란 무엇인가요?
- Q) 11. ContentProvider의 목적은 무엇이며, 애플리케이션 간의 안전한 데이터 공유를 어떻게 용이하게 하나요?
- Q) 12. 구성 변경(configuration changes)을 어떻게 처리하나요?
- Q) 13. 안드로이드는에서 메모리를 어떻게 효율적으로 관리하며, 메모리 누수(memory leaks)를 어떻게 방지하는지 설명해주세요.
- Q) 14. ANR 이란 무엇인지, ANR이 발생하는 주요 원인은 무엇이며, 어떻게 예방할 수 있는지 설명해주세요.
- Q) 15. 딥 링크(deep links)를 어떻게 처리하는지 설명해주세요.
- Q) 16. 태스크(tasks)와 백 스택(back stack)이란 무엇인가요?
- Q) 17. Bundle의 사용 목적에 대해서 설명해 주세요.
- Q) 18. Activity 또는 Fragment 간에 데이터를 어떻게 전달하나요?
- Q) 19. 화면 회전과 같은 구성 변경이 발생하면 Activity에 어떤 변화가 생기나요?
- Q) 20. ActivityManager란 무엇인가요?
- Q) 21. SparseArray를 사용하면 어떤 이점이 있나요?
- Q) 22. 런타임 권한(runtime permissions)을 어떻게 처리하나요?
- Q) 23. Looper, Handler, HandlerThread의 역할은 무엇인가요?
- Q) 24. 예외(exceptions)를 어떻게 추적하나요?
- Q) 25. 빌드 변형(build variants)과 플레이버(flavors)란 무엇인가요?
- Q) 26. 접근성(accessibility)을 어떻게 보장하나요?
- Q) 27. 안드로이드 파일 시스템이란 무엇인가요?
- Q) 28. 안드로이드 런타임(ART), Dalvik, Dex 컴파일러란 무엇인가요?
- Q) 29. APK 파일과 AAB 파일의 차이점은 무엇인가요?
- Q) 30. R8 최적화란 무엇인가요?
- Q) 31. 애플리케이션 용량를 어떻게 줄이나요?
- Q) 32. 안드로이드 애플리케이션의 프로세스(process)란 무엇이며, 안드로이드 운영 체제는 이를 어떻게 관리하나요?
- 카테고리 1: 안드로이드 UI - 뷰 (Views)
- Q) 33. View 생명주기를 설명해주세요
- Q) 34. View와 ViewGroup의 차이점은 무엇인가요?
- Q) 35. ViewStub이란 무엇이고, 이를 사용하여 UI 성능을 최적화해 본 경험이 있나요?
- Q) 36. 커스텀 뷰(custom views)는 어떻게 구현하나요?
- Q) 37. Canvas란 무엇이며 어떻게 활용하나요?
- Q) 38. View 시스템의 무효화(invalidation)란 무엇인가요?
- Q) 39. ConstraintLayout이란 무엇인가요?
- Q) 40. SurfaceView 대신 TextureView는 언제 사용해야 하나요?
- Q) 41. RecyclerView는 내부적으로 어떻게 작동하나요?
- Q) 42. Dp와 Sp의 차이점은 무엇인가요?
- Q) 43. 나인패치(nine-patch) 이미지의 용도는 무엇인가요?
- Q) 44. Drawable이란 무엇이며, UI 개발에서 어떻게 사용되나요?
- Q) 45. 안드로이드의 Bitmap이란 무엇이며, 큰 Bitmap을 효율적으로 처리하는 방법은 무엇인가요?
- Q) 46. 애니메이션을 어떻게 구현하나요?
- Q) 47. Window란 무엇인가요?
- Q) 48. 웹 페이지를 어떻게 렌더링하나요?
- 카테고리 2: Jetpack 라이브러리
- Q) 49. AppCompat 라이브러리란 무엇인가요?
- Q) 50. Material Design Components (MDC)란 무엇인가요?
- Q) 51. ViewBinding를 사용하면 어떤 장점이 있나요?
- Q) 52. DataBinding의 동작 원리에 대해서 설명해주세요.
- Q) 53. LiveData에 대해서 설명해 주세요.
- Q) 54. Jetpack ViewModel에 대해 설명해 주세요.
- Q) 55. Jetpack Navigation 라이브러리란 무엇인가요?
- Q) 56: Dagger 2와 Hilt의 동작원리 및 차이점에 대해서 설명해 주세요.
- Q) 57. Jetpack Paging 라이브러리는 어떤 메커니즘으로 동작하나요?
- Q) 58. Baseline Profile은 앱의 성능에 어떤 이점을 가져다주나요?
- 카테고리 3: 비즈니스 로직
- Q) 59. 장기적으로 실행되는 백그라운드 작업을 어떻게 관리하나요?
- Q) 60. Json 형식을 객체로 어떻게 직렬화(serialize)하나요?
- Q) 61. 원격 데이터를 가져오기 위해 네트워크 요청을 어떻게 처리하며, 효율성과 신뢰성을 위해 어떤 라이브러리나 기술을 사용하나요?
- Q) 62. 대규모 데이터 셋을 효율적으로 로드하는 데 왜 페이징 기법이 필요하고, RecyclerView로 구현해 본 경험이 있나요?
- Q) 63. 네트워크에서 이미지를 어떻게 가져오고 렌더링하나요?
- Q) 64. 로컬 디바이스에 데이터를 저장하고 복원하는 방법에 대해서 설명해 주세요.
- Q) 65. 오프라인 우선(offline-first) 아키텍처를 어떻게 설계하실 건가요?
- Q) 66. 초기 데이터 로딩을 위한 작업을 Compose의 LaunchedEffect와 ViewModel.init() 중 어디에서 하는 것이 가장 이상적인 가요?
- 카테고리 0: 안드로이드 프레임워크
- 1. Jetpack Compose 면접 질문
- 카테고리 0: Compose Fundamentals
- Q) 0. Jetpack Compose의 동작 구조는 어떻게 이루어져 있나요?
- Q) 1. Compose 페이즈(phase)에 대해 설명해 주세요,
- Q) 2. Jetpack Compose가 선언적(declarative) UI 프레임워크라고 불리는 이유는 무엇인가요?
- Q) 3. recomposition이란 무엇이며 언제 발생하나요? 또한 앱 성능과 어떤 관련이 있나요?
- Q) 4. Composable 함수는 내부적으로 어떻게 작동하나요?
- Q) 5. Jetpack Compose의 안정성(stability)이란 무엇이며, 성능과 어떤 관련이 있나요?
- Q) 6. 안정성(stabilities) 개선을 통해 Compose 성능을 최적화한 경험이 있나요?
- Q) 7. 컴포지션(composition)이란 무엇이며 어떻게 생성하나요?
- Q) 8. XML 기반 프로젝트를 Jetpack Compose로 마이그레이션하는 전략에 대해서 설명해 주세요.
- Q) 9. Compose 성능 테스트를 항상 릴리스 모드(release mode)에서 해야 하는 이유는 무엇인가요?
- Q) 10. Jetpack Compose에서 자주 사용하시는 Kotlin 관용구(idioms)에 대해서 말씀해 주세요.
- 카테고리 1: Compose Runtime
- Q) 11. 상태(State)란 무엇이며 이를 관리하는 데 사용되는 API는 무엇인가요?
- Q) 12. 상태 호이스팅(state hoisting)으로 어떤 이점을 얻을 수 있나요?
- Q) 13. remember와 rememberSaveable의 차이점은 무엇인가요?
- Q) 14. 컴포저블 함수 내에서 안전하게 코루틴 스코프(coroutine scope)를 생성하는 방법은 무엇인가요?
- Q) 15. 컴포저블 함수 내에서 발생하는 사이드 이펙트를 어떻게 처리하나요?
- Q) 16. rememberUpdatedState는 왜 사용하고 어떻게 작동하나요?
- Q) 17. produceState의 목적은 무엇이며 어떻게 작동하나요?
- Q) 18. snapshotFlow를 사용해 본 경험이 있을까요? 사용 시 주의 사항은 무엇인가요?
- Q) 19. derivedStateOf가 필요한 시나리오는 무엇이고, recomposition 최적화에 어떻게 도움이 되나요?
- Q) 20. 컴포저블 함수 또는 컴포지션의 생명주기는 어떻게 되나요?
- Q) 21. SaveableStateHolder에 대해서 설명해 주세요. 그리고 어떤 시나리오에서 유용한가요?
- Q) 22. 스냅샷 시스템(snapshot system)이란 무엇이며 어디에 사용하나요?
- Q) 23. State에 List 유형을 바로 넣어서 사용하면 어떤 문제가 발생하나요? mutableStateListOf와 mutableStateMapOf에 대해서 설명해 주세요.
- Q) 24. 컴포저블 함수에서 Kotlin의 Flow를 메모리 누수 없이 안전하게 관찰하는 방법은 무엇인가요?
- Q) 25. CompositionLocals의 역할과 목적에 대해 설명해 주세요.
- 카테고리 0: Compose Fundamentals
Leanpub 60일 100% 만족 보장제
구매 후 60일 이내에 클릭 두 번으로 모든 Leanpub 구매에 대해 100% 환불을 받으실 수 있습니다.
기술적으로는 책이나 코스 파일을 이미 받으셨기 때문에 저희에게는 위험이 있습니다. 하지만 저희는 저희의 제품과 서비스, 그리고 저자와 독자분들을 매우 신뢰하기 때문에 저희가 판매하는 모든 것에 대해 기꺼이 전액 환불을 보장해 드립니다.
어떤 것이 좋은지는 직접 시도해보아야만 알 수 있습니다. 100% 환불 보장이 있기 때문에 시도해 보는 데 전혀 위험이 없습니다!
그러니 장바구니에 추가하기 버튼을 클릭하지 않을 이유가 없겠죠?
전체 약관 보기...
10달러 구매에 8달러, 20달러 구매에 16달러를 받으세요
7.99달러 이상의 구매에 대해 80%의 로열티를 지급하며, 0.99달러에서 7.98달러 사이의 구매에 대해서는 50센트의 고정 수수료를 제외한 80%의 로열티를 지급합니다. 10달러 판매에서 8달러를, 20달러 판매에서 16달러를 받으실 수 있습니다. 따라서 만약 귀하의 책이 20달러에 환불되지 않은 상태로 5000부가 판매된다면, 80,000달러를 받으실 수 있습니다.
(네, 일부 작가들은 이미 Leanpub에서 그 이상을 벌었습니다.)
실제로 작가들은 Leanpub에서 글을 쓰고, 출판하고, 판매하여1,400만 달러 이상을 벌었습니다.
Leanpub에서 집필하는 방법 자세히 알아보기
무료 업데이트. DRM 무료.
Leanpub 책을 구매하시면 저자가 책을 업데이트하는 한 무료로 업데이트를 받으실 수 있습니다! 많은 저자들이 책을 쓰는 과정에서 Leanpub을 통해 출간하고 있습니다. 모든 독자는 구매 시기나 지불 금액(무료 포함)에 관계없이 무료 업데이트를 받습니다.
대부분의 Leanpub 책은 PDF(컴퓨터용)와 EPUB(휴대폰, 태블릿, 킨들용) 형식으로 제공됩니다. 책에서 제공되는 형식은 이 페이지의 오른쪽 상단에서 확인하실 수 있습니다.
마지막으로, Leanpub 책에는 DRM 복사 방지 제한이 전혀 없어 지원되는 모든 기기에서 쉽게 읽으실 수 있습니다.