- 서문 (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의 역할과 목적에 대해 설명해 주세요.
- 카테고리 2: Compose UI
- Q) 26. Modifier란 무엇인가요?
- Q) 27. Layout이란 무엇인가요?
- Q) 28. Box에 대해서 아는 대로 다 설명해 주세요.
- Q) 29. Arrangement와 Alignment의 차이점에 대해서 설명해 주세요.
- Q) 30. Painter에 대해서 설명해 주세요.
- Q) 31. 네트워크에서 받아오는 이미지는 어떻게 로딩하나요?
- Q) 32. UI 버벅거림(jank)을 피하면서 리스트에 수백 개의 항목을 효율적으로 렌더링하려면 어떻게 해야 하나요?
- Q) 33. Lazy List를 활용하여 페이지네이션(pagination) 구현하는 방법을 설명해 주세요.
- Q) 34. Canvas는 어떤 역할을 하나요?
- Q) 35. graphicsLayer를 어떻게 활용하나요?
- Q) 36. Jetpack Compose에서 애니메이션을 어떻게 구현하나요?
- Q) 37. 화면 간 내비게이션을 어떻게 구현하나요?
- Q) 38. Compose Preview는 어떻게 작동하고 사용하고 계신 Preview 어노테이션은 어떤 것이 있나요?
- Q) 39. Compose UI 컴포넌트 또는 스크린 유닛 테스트를 작성해 본 적이 있나요? 어떤 시나리오에서 작성해 봤나요?
- Q) 40. 스크린샷 테스트(screenshot testing)란 무엇이며, UI 일관성을 보장하는 데 어떻게 도움이 되나요?
- Q) 41. Jetpack Compose에서 접근성을 어떻게 보장하나요?
- 카테고리 0: Compose Fundamentals
Manifest Android Interview 한국어
GDE의 노하우가 담긴 질문으로 학습하는 안드로이드 기술 면접 가이드
안드로이드 기술 면접에서 좋은 결과를 얻으려면 단순히 답을 외우는 것이 아니라, 개념을 올바르게 이해하고 실전에 적용해 보는 연습이 중요합니다. 이 책에서 다루는 108개의 면접 질문, 162개의 추가적인 실전 질문, 50개 이상의 Pro Tips를 통해 기술적 배경과 논리를 향상시킴으로써 실제 기술 면접의 대비뿐만 아니라, 안드로이드 생태계의 전반적인 지식을 학습하는데 큰 도움이 됩니다.
The author is letting you choose the price you pay for this book!
Buying multiple copies for your team? See below for a discount!
안드로이드 기술 면접에서 좋은 결과를 얻으려면 단순히 답을 외우는 것이 아니라, 개념을 올바르게 이해하고 실전에 적용해 보는 연습이 중요합니다. 이 책에서 다루는 108개의 면접 질문, 162개의 추가적인 실전 질문, 50개 이상의 Pro Tips를 통해 기술적 배경과 논리를 향상시킴으로써 실제 기술 면접의 대비뿐만 아니라, 안드로이드 생태계의 전반적인 지식을 학습하는데 큰 도움이 됩니다.
About
About the Book
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 블로그 포스트를 통해 확인하실 수 있습니다.
Feedback
Price
Pick Your Price...
Minimum price
$42.99
$52.99
You pay
$52.99Author earns
$42.39Team Discounts
Team Discounts
Get a team discount on this book!
Up to 3 members
- Minimum price
- $107.00
- Suggested price
- $132.00
Up to 5 members
- Minimum price
- $171.00
- Suggested price
- $211.00
Up to 10 members
- Minimum price
- $300.00
- Suggested price
- $370.00
Up to 15 members
- Minimum price
- $429.00
- Suggested price
- $529.00
Up to 25 members
- Minimum price
- $644.00
- Suggested price
- $794.00
Author
About the Author
Jaewoong
The author of this book, Jaewoong Eum (known as skydoves), is a Google Developer Expert (GDE) for Android, Kotlin, and Firebase, an open-source developer created over 80+ open-source libraries and projects, collectively amassing 15+ million downloads annually. The author is also the founder of Dove Letter—a subscription-based repository dedicated to sharing, learning, and discussing Android and Kotlin development.
Contents
Table of Contents
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Write and Publish on Leanpub
You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!
Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.
Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.