불로구

안드로이드 신입 개발자 면접 질문 100선 본문

프로그래밍/코틀린 안드로이드

안드로이드 신입 개발자 면접 질문 100선

맹이맹이 2025. 8. 6. 14:03
반응형

안드로이드 앱 개발자로 취업을 준비하면서 꼭 알아야 할 질문 100가지를 모았습니다.
기술 면접 준비는 물론, 학습 로드맵에도 도움이 될 수 있도록 분야별로 정리했습니다.


✅ 1. Android 기본 지식 (프레임워크 중심)

1. 안드로이드의 4대 구성 요소는 무엇인가요?
2. Activity와 Fragment의 차이는?
3. Activity 생명주기를 설명해주세요.
4. Fragment 생명주기는 어떤가요?
5. Intent란 무엇이며, 명시적 vs 암시적 Intent의 차이는?
6. Service란 무엇이고 언제 사용하나요?
7. BroadcastReceiver는 어떤 역할을 하나요?
8. ContentProvider란 무엇인가요?
9. onSaveInstanceState와 onRestoreInstanceState의 차이는?
10. Application 클래스는 언제 쓰나요?


✅ 2. Kotlin & Java (언어 이해)

11. Kotlin과 Java의 주요 차이점은?
12. Kotlin의 확장 함수란?
13. Kotlin에서 lateinit과 by lazy의 차이는?
14. val과 var의 차이는?
15. 고차 함수란 무엇인가요?
16. apply, let, run, with, also의 차이점?
17. Kotlin Coroutine이란?
18. suspend 함수란?
19. Null Safety란 무엇인가요?
20. sealed class와 abstract class 차이?


✅ 3. UI 구성 & Jetpack Compose

21. Jetpack Compose란?
22. Compose와 XML 기반 UI의 차이점?
23. Compose에서 상태 관리란?
24. remember와 mutableStateOf 차이?
25. Modifier의 역할은?
26. Compose의 recomposition이란?
27. LaunchedEffect는 언제 사용하나요?
28. Compose Navigation의 구조는?
29. Compose에서 리스트를 만들려면 어떻게 하나요?
30. XML에서 ConstraintLayout은 언제 사용하나요?


✅ 4. Jetpack & 아키텍처 컴포넌트

31. ViewModel의 역할은 무엇인가요?
32. LiveData란 무엇이고 어떻게 사용하나요?
33. StateFlow와 LiveData의 차이점은?
34. Room DB란 무엇이고 언제 사용하나요?
35. Repository 패턴이란?
36. Paging 3 라이브러리는 무엇인가요?
37. DataStore란 무엇이며 SharedPreferences와 차이는?
38. LifecycleObserver란?
39. Navigation Component란?
40. Hilt란 무엇이며 어떻게 사용하나요?


✅ 5. 앱 아키텍처 & 설계

41. MVVM이란?
42. MVC, MVP, MVVM 차이점은?
43. Clean Architecture란?
44. 의존성 주입(DI)이란?
45. 단방향 데이터 흐름(Unidirectional Data Flow)이란?
46. SOLID 원칙 중 하나를 설명해주세요.
47. 레이어드 아키텍처에서 각 레이어의 책임은?
48. 상태(state)와 이벤트(event)의 차이는?
49. ViewModel이 과도하게 커지는 문제를 어떻게 해결하나요?
50. UseCase는 왜 필요한가요?


✅ 6. 네트워크 & 데이터

51. Retrofit은 무엇이며 어떻게 사용하나요?
52. OkHttp의 역할은?
53. Gson과 Moshi의 차이는?
54. REST API란 무엇인가요?
55. API 통신 오류 처리는 어떻게 하나요?
56. 비동기 통신과 동기 통신 차이?
57. suspend 함수 내에서 API 호출 시 주의할 점은?
58. Repository에서 네트워크 예외 처리는 어떻게 하나요?
59. 데이터 캐싱은 왜 필요한가요?
60. JSON 파싱은 어떻게 하나요?


✅ 7. 빌드 & 성능

61. Gradle이란 무엇인가요?
62. build.gradle 파일의 역할은?
63. 멀티모듈이란?
64. proguard란 무엇인가요?
65. APK와 AAB의 차이점은?
66. 앱 실행 속도 최적화를 위한 방법은?
67. UI 렌더링 속도 측정 방법은?
68. StrictMode는 언제 사용하나요?
69. 메모리 누수는 어떻게 발생하나요?
70. 메모리 누수 탐지 방법은?


✅ 8. 테스트 & 디버깅

71. Unit Test와 Instrumentation Test의 차이점?
72. JUnit과 Espresso란?
73. Mockito란?
74. ViewModel 테스트는 어떻게 하나요?
75. 테스트에서 fake와 mock의 차이는?
76. 테스트 커버리지를 높이기 위한 전략은?
77. Crash 발생 시 디버깅은 어떻게 하나요?
78. 로그는 어떻게 잘 관리하나요?
79. StrictMode를 이용한 문제 감지 방법?
80. Lint는 어떤 도구인가요?


✅ 9. 보안 & 배포

81. Proguard를 사용하는 이유는?
82. HTTPS 통신 보안 강화 방법?
83. 디컴파일 방지 방법은?
84. API 키 보안은 어떻게 관리하나요?
85. 앱에 로그인 기능을 구현할 때 유의사항?
86. Play Store에 앱 배포 절차는?
87. 앱 서명(Signing)이란?
88. 테스트용 SHA1은 어떻게 발급하나요?
89. Firebase Crashlytics는 무엇인가요?
90. 구글 Play Console에서 주의해야 할 점?


✅ 10. 기타 실무 및 CS 기초

91. ANR이란?
92. GC는 어떻게 작동하나요?
93. Thread와 Coroutine의 차이?
94. Handler와 Looper는 언제 쓰나요?
95. UI 스레드와 백그라운드 스레드 차이점?
96. 앱이 백그라운드 상태일 때 처리 전략은?
97. Local DB와 Remote DB 차이는?
98. 앱의 최소 SDK와 target SDK 차이점?
99. SDK vs API vs Library 차이?
100. 안드로이드 개발자로서 성장하기 위해 중요한 역량은?


마무리

이 질문들을 단순히 외우기보다는,
직접 구현해보고, 관련 개념을 블로그로 정리하면서,
자기 언어로 설명할 수 있는 것이 진짜 실력이 됩니다.

🎯 실제 면접에서는 “어떻게 이해하고 적용해봤는가”가 훨씬 중요합니다.
질문을 공부 주제로 삼아 나만의 답변을 만들어 보세요!

반응형
Comments