1. 안드로이드의 주요 구성 요소(Components)는 무엇인가요?
답변: 안드로이드의 주요 구성 요소는 Activity, Service, Broadcast Receiver, Content Provider입니다. Activity는 사용자 인터페이스를 담당하며, Service는 백그라운드 작업을 처리합니다. Broadcast Receiver는 시스템 또는 다른 앱에서 발생하는 이벤트를 감지하고 반응하며, Content Provider는 애플리케이션 간의 데이터 공유를 제공합니다. 이 네 가지 구성 요소는 앱이 다양한 작업을 효율적으로 수행할 수 있도록 합니다.
연관 질문: 각 구성 요소의 생명주기에 대해 설명해보세요.
2. AndroidManifest.xml의 역할은 무엇인가요?
답변: AndroidManifest.xml은 애플리케이션의 구성 파일로, 앱의 패키지 이름, 구성 요소(Activity, Service 등), 권한, 애플리케이션의 진입점 등을 정의합니다. 또한, 시스템에 의해 앱이 어떻게 실행되고 상호작용하는지를 결정하는 중요한 정보를 담고 있습니다. 이를 통해 시스템은 앱을 올바르게 설치, 실행 및 관리할 수 있습니다.
연관 질문: AndroidManifest.xml에서 권한을 정의하는 방법과 그 중요성에 대해 설명해주세요.
3. 안드로이드에서 Intent란 무엇이며, 어떻게 사용되나요?
답변: Intent는 애플리케이션 간 또는 애플리케이션 내에서 액티비티, 서비스, 브로드캐스트 리시버 간의 통신을 위해 사용되는 메시지 객체입니다. 명시적 인텐트는 특정 컴포넌트를 대상으로 하며, 암시적 인텐트는 조건에 맞는 컴포넌트를 시스템이 선택하도록 합니다. Intent를 통해 데이터 전달, 액티비티 전환, 서비스 시작 등을 수행할 수 있습니다.
연관 질문: 암시적 인텐트와 명시적 인텐트의 차이점에 대해 설명해보세요.
4. 안드로이드의 생명주기(Lifecycle) 관리란 무엇인가요?
답변: 안드로이드 생명주기는 Activity나 Fragment 등의 구성 요소가 생성, 시작, 일시 중지, 재개, 중지, 종료되는 일련의 과정을 말합니다. 이를 통해 시스템은 리소스를 효율적으로 관리하고, 사용자의 앱 사용 환경에 적응할 수 있습니다. 생명주기 메서드(onCreate, onStart, onResume 등)를 통해 앱은 상태 변화에 따라 필요한 작업을 처리할 수 있습니다.
연관 질문: 생명주기 관리에서 onSaveInstanceState와 onRestoreInstanceState의 역할에 대해 설명해주세요.
5. 안드로이드에서 RecyclerView와 ListView의 차이점은 무엇인가요?
답변: RecyclerView는 ListView의 확장된 버전으로, 더 나은 성능과 유연성을 제공합니다. RecyclerView는 ViewHolder 패턴을 강제하여 스크롤 성능을 향상시키고, 레이아웃 관리자를 통해 다양한 레이아웃 배치를 지원합니다. 반면 ListView는 더 단순하고 기본적인 목록을 구현할 때 사용됩니다. RecyclerView는 아이템의 재사용성을 극대화하여 메모리 사용을 줄이는 장점이 있습니다.
연관 질문: RecyclerView에서 ViewHolder 패턴의 장점에 대해 설명해주세요.
6. 안드로이드에서 AsyncTask는 무엇이며, 어떻게 사용되나요?
답변: AsyncTask는 백그라운드 작업을 수행한 후, 그 결과를 UI 스레드에서 처리할 수 있도록 도와주는 클래스입니다. 간단한 비동기 작업을 쉽게 구현할 수 있지만, 메모리 누수와 같은 문제로 인해 최근에는 권장되지 않습니다. 대신 Kotlin의 Coroutines나 Java의 ExecutorService 같은 대체 기술이 많이 사용됩니다.
연관 질문: AsyncTask의 단점과 왜 대체 기술들이 추천되는지 설명해보세요.
7. 안드로이드에서 SharedPreferences는 무엇인가요?
답변: SharedPreferences는 키-값 쌍 형태로 간단한 데이터를 저장하기 위해 사용되는 API입니다. 작은 설정 값이나 사용자의 기본 설정 데이터를 저장할 때 유용하며, 앱이 재시작되더라도 데이터를 유지할 수 있습니다. 데이터를 파일로 저장하며, 이 데이터는 앱의 컨텍스트에 의해 관리됩니다.
연관 질문: SharedPreferences에 데이터를 저장하고 읽어오는 방법에 대해 설명해주세요.
8. 안드로이드에서 Fragment란 무엇인가요?
답변: Fragment는 Activity 내에서 재사용 가능한 UI 및 동작의 부분을 나타냅니다. 여러 Fragment를 한 Activity에 조합하여 다양한 화면 구성을 할 수 있습니다. 특히 태블릿과 같은 큰 화면에서 화면을 분할하여 사용자의 인터페이스 경험을 향상시킬 수 있습니다. Fragment는 자신만의 생명주기를 가지며, Activity와 함께 동작합니다.
연관 질문: Fragment 간의 통신 방법에 대해 설명해주세요.
9. 안드로이드에서 ViewModel은 무엇이며, 왜 사용되나요?
답변: ViewModel은 UI 관련 데이터를 저장하고 관리하기 위해 사용되는 아키텍처 구성 요소입니다. Activity나 Fragment가 재생성될 때에도 데이터를 유지하여 불필요한 데이터 로드를 방지하고, 생명주기와 무관하게 데이터를 유지할 수 있습니다. ViewModel을 사용하면 코드의 유지보수성과 테스트 가능성이 향상됩니다.
연관 질문: ViewModel과 LiveData의 차이점에 대해 설명해보세요.
10. 안드로이드에서 Room 라이브러리는 무엇이며, 어떻게 사용되나요?
답변: Room은 SQLite 데이터베이스를 쉽게 사용할 수 있도록 도와주는 안드로이드 아키텍처 구성 요소입니다. SQL 쿼리를 DAO 인터페이스로 추상화하여 데이터베이스 작업을 간단하고 안전하게 수행할 수 있습니다. 또한, Room은 SQLite에서 발생할 수 있는 오류를 컴파일 타임에 감지하고, LiveData나 RxJava와의 통합을 지원하여 비동기 데이터 처리가 용이합니다.
연관 질문: Room에서 DAO(Data Access Object)의 역할에 대해 설명해주세요.
'Android' 카테고리의 다른 글
Android 난독화 기법에 대해서 설명하시오. (5) | 2024.09.01 |
---|---|
Kotlin 2.0 업데이트와 Android 관련 주요 사항 (0) | 2024.08.31 |
Android 개발시 보게되는 Exception 정리 (0) | 2024.08.15 |
Kotlin 2.0 업데이트 내용을 알고 있나? (0) | 2024.08.15 |
Android 앱 Play 스토어 심사 기준을 알고 있는가? (0) | 2024.08.15 |