🎓 신규! Manifest Android Interview 코스 — 254개 퀴즈와 372개 실전 질문
🏆 Leanpub 베스트셀러 1위

Manifest Android Interview (한국어판)

이 책은 안드로이드와 Jetpack Compose를 깊이 있게 파고드는 기술서입니다. 안드로이드와 Compose의 기본기를 다시 다지고, 내부 동작을 탐구하며, 기술 면접에서 좋은 성과를 내고 싶은 개발자를 위해 쓰였습니다.

안드로이드 프레임워크, UI 아키텍처, Jetpack 라이브러리, 비즈니스 로직 전반을 빠짐없이 다룹니다. Jetpack Compose는 기초 개념부터 런타임 동작과 내부 메커니즘, 그리고 모던한 UI 패턴까지 깊이 있게 살펴봅니다.

기술 면접을 준비하든, Jetpack Compose의 내부를 깊이 이해하고 싶든, 안드로이드 개발을 한 단계 더 파고들고 싶든, 이 책은 여러분의 커리어를 끌어올리는 든든한 로드맵이 되어 줄 것입니다.

579
페이지
108
면접 질문
162
실전 질문
50+
Pro Tips

전 세계 톱 테크 기업의 엔지니어들에게 사랑받는 책

GoogleMetaJetBrainsSquareGrabKakaoNaver외 다수

저자 소개

엄재웅 (skydoves)

엄재웅 (skydoves)

Senior Developer Advocate & Engineer @ RevenueCat

안드로이드, 코틀린, 파이어베이스 분야의 Google Developer Expert(GDE) 엄재웅(skydoves)입니다. 지금까지 80개 이상의 오픈소스 라이브러리와 프로젝트를 출시하고 운영해 왔으며, 이 라이브러리들은 전 세계 개발자들에 의해 매년 1,500만 회 이상 다운로드되고 있습니다. 또한 안드로이드와 코틀린 개발 전반의 소식을 나누고 함께 배우며 토론하는 구독 기반 저장소 Dove Letter를 운영하고 있습니다.

저는 소프트웨어 솔루션, 특히 오픈소스 기여와 기술 콘텐츠를 통해 세상을 더 나은 곳으로 만들자는 사명을 품고 있으며, 이 책이 그 여정의 또 다른 새로운 출발이라고 믿습니다. 이 책이 완성되기까지 저를 지지해 준 개발자 커뮤니티와 친구들, 그리고 가족에게 깊은 감사를 전합니다. 책을 완성하는 일은 제게 하나의 이정표일 뿐만 아니라, 안드로이드 생태계의 많은 분들께 힘을 보태기 위한 또 하나의 첫걸음이기도 합니다.

배움은 늘 계속되는 여정이며, 하나씩 극복해 나가는 도전이 여러분을 더 나은 엔지니어로 만들어 줍니다. 다가오는 기술 면접을 준비하시든, 더 나은 개발자로 성장하기 위해 노력하시든, 단순히 '구현하는 것' 그 이상을 고민해 보시길 권합니다. '왜(why)'를 이해하고, 다양한 접근 방식을 실험하며, 호기심과 열정으로 꾸준히 학습해 나가시길 바랍니다.

언제나 즐거운 코딩 되시고, 여러분의 안드로이드 여정에 행운이 가득하기를 바랍니다!

이 책의 특징

면접 합격에 필요한 모든 것

체계적이고 깊이 있는 구성으로 안드로이드 개발 역량과 기술 면접을 동시에 대비합니다.

📖상세한 설명이 담긴 면접 질문

각 질문마다 개념의 '무엇'과 '왜'를 단계적으로 풀어내, 표면적인 지식을 넘어 깊이 있는 이해를 쌓도록 돕습니다. 답을 외우는 데 그치지 않고 그 답의 근거까지 이해하게 됩니다.

💡Pro Tips for Mastery

기본적인 면접 대비를 넘어서는 50개 이상의 심화 'Pro Tips' 섹션입니다. 널리 쓰이는 API의 내부 구현을 들여다보고, 현업에서 얻은 통찰을 공유하며, 겉으로 드러나지 않는 동작 원리까지 설명해 기술 토론에서 한발 앞서게 합니다.

🎯실전 질문

실제 면접 상황을 시뮬레이션하도록 설계한 162개의 후속 '실전 질문'입니다. 스스로 탐구하고 비판적으로 사고하도록 이끌어, 예측하기 어려운 기술 면접에 대비하게 합니다.

📚참고 자료와 추가 문헌

주제마다 더 깊이 학습할 수 있도록 엄선한 참고 자료를 담았고, 복잡한 내부 구조는 쉬운 표현의 각주로 풀어냈으며, 공식 문서와 커뮤니티 자료로 이어지는 링크를 제공해 모든 수준의 개발자가 고급 개념에 다가갈 수 있게 합니다.

미리보기

책 내용 미리 살펴보기

각 질문마다 명확한 해설과 실용적인 예제가 소개됩니다. 아래는 영문책의 미리보기 버전입니다.

책 내용 미리보기 - 면접 질문

책 내용 미리보기 - Compose 설명

책 내용 미리보기 - Pro Tips

구성

면접 질문

안드로이드 프레임워크부터 Jetpack Compose까지 폭넓게 다룹니다.

Chapter 0

안드로이드 면접 질문

  • 안드로이드 프레임워크33 Q's
  • 안드로이드 UI16 Q's
  • Jetpack 라이브러리10 Q's
  • 비즈니스 로직8 Q's
Total: 67 questions

Chapter 1

Jetpack Compose 면접 질문

  • Compose 기초11 Q's
  • Compose 런타임15 Q's
  • Compose UI16 Q's
Total: 42 questions

추천사

개발자들의 이야기

Manuel Vivo

Manuel Vivo

Staff Android Engineer @ Bumble · 前 Google Android DevRel

@manuelvicnt

Manifest Android Interview는 이론 중심의 기술 면접을 준비하는 안드로이드 개발자들에게 필수적인 가이드입니다. 이 책은 깊이 있는 기술적 통찰력, 실용적인 예제, 그리고 세심하게 구성된 'Pro Tips for Mastery' 섹션을 자연스럽게 결합하였습니다. 이 책에 담긴 지식은 안드로이드 면접을 자신 있게 헤쳐나가고 성공적으로 이끄는 데 매우 귀중한 자료가 될 것입니다.

Simona Milanovic

Simona Milanovic

Senior Android Developer Relations Engineer @ Google

@anomiss

이 책의 저자인 재웅님(안드로이드 커뮤니티에서 skydoves로 잘 알려진 분)의 신간 Manifest Android Interview는 면접을 준비하거나 안드로이드 기술을 연마하고 싶은 모든 사람에게 필수입니다. Compose 런타임과 UI의 기본부터 세부적인 내용까지 모든 것을 담은 광범위하고 상세하며 체계적인 자료입니다. 저는 개인적으로 Jetpack Compose 부분에 특히 집중했는데, 면접 준비에 매우 유용하다고 느꼈습니다. 실제 면접과 매우 유사한 방식으로 어렵고 실용적인 '이유'와 '방법'에 대한 답을 꾸준히 제시하여 문제 해결 능력을 키우도록 돕습니다. Compose를 처음 접하는 분이든 면접을 준비하는 분이든, 이 책은 안드로이드 지식과 면접에 대한 자신감을 확실히 높여 줄 것입니다.

Alejandra Stamato

Alejandra Stamato

Lead Android Engineer @ HubSpot · 前 Google Android DevRel

@AleStamato

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

Matt McKenna

Matt McKenna

Senior Android Engineer @ Block · Android GDE

@mattmckenna

Manifest Android Interview는 기본기를 다지고, 면접을 준비하며, 모범 사례를 다시 살펴보기에 완벽합니다. 명확한 구조와 쉽게 탐색할 수 있는 형식, 그리고 심사숙고하여 선별한 질문들은 핵심 안드로이드 개념을 배우고 복습하는 데 있어 최고의 자료입니다.

커뮤니티 반응

커뮤니티 반응

안드로이드 커뮤니티가 이 책에 대하여 남긴 이야기를 확인해 보세요.

구매하기

책 읽으러 가기

원하는 플랫폼을 통해 전자책(한국어 지원) 또는 하드커버 종이책(영문 버전)을 읽어보세요.

글로벌

글로벌 언어지원

전 세계 안드로이드 개발자 커뮤니티를 위한 번역판이 존재합니다. 본 책은 지금까지 총 8개국의 언어로 번역되었습니다.

스폰서

함께해 주신 분들

Stream

Stream

강력한 API와 SDK로 실시간 채팅, 영상, 음성, 피드, 모더레이션 기능을 구축하세요. 글로벌 엣지 네트워크와 엔터프라이즈급 인프라가 뒷받침합니다.

Learn more →
Kotlin Weekly

Kotlin Weekly

매주 가장 좋은 코틀린 아티클과 라이브러리, 영상, 소식을 메일함으로 받아보는 주간 뉴스레터입니다.

Learn more →

코스

Manifest Android Interview 코스

퀴즈와 실습, 실전 질문으로 구성된 종합 코스로 면접 준비를 한 단계 더 끌어올리세요. (코스는 현재 영문으로만 제공됩니다.)

목차

목차

두 개의 챕터에 걸쳐 세심하게 설계한 108개의 면접 질문

Chapter 0: 안드로이드 면접 질문

카테고리 0: 안드로이드 프레임워크33 Q's
  • 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)16 Q's
  • 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 라이브러리10 Q's
  • 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: 비즈니스 로직8 Q's
  • 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() 중 어디에서 하는 것이 가장 이상적인가요?

Chapter 1: Jetpack Compose 면접 질문

카테고리 0: Compose 기초11 Q's
  • 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 런타임15 Q's
  • 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 UI16 Q's
  • 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에서 접근성을 어떻게 보장하나요?

여정

타임라인 & 마일스톤

이 책이 걸어온 주요 순간들

2026.04.24
3,600부 판매
2026.02.21
3,000부 판매
2026.01.31
2,800부 판매
2025.10.31
2,200부 판매
2025.10.13
1,800부 판매
2025.09.11
일본어판 출간 🇯🇵
2025.08.12
1,500부 판매
2025.07.26
1,300부 판매 · 우크라이나어판 출간 🇺🇦
2025.07.22
인도네시아어판 출간 🇮🇩
2025.07.12
중국어판 출간 🇨🇳
2025.07.02
v1.6 출시
2025.06.28
1,000부 판매
2025.06.24
인도 페이퍼백판(Shroff Publishers) 출간
2025.06.18
한국어판 출간 🇰🇷
2025.06.12
독일어판 출간 🇩🇪
2025.06.10
스페인어판 출간 🇪🇸
2025.06.05
Amazon판(Kindle, 하드커버, 페이퍼백) 출간 📚
2025.06.01
Kotlin Weekly가 뉴스레터 스폰서로 합류
2025.05.01
Stream이 메인 스폰서로 합류
2025.04.19
Leanpub 베스트셀러 1위 달성 🏆
2025.04.15
초판 출간