안드로이드 경력 면접 질문
  1. 안드로이드 프레임워크에 대해 설명해주세요. 안드로이드 프레임워크는 안드로이드 애플리케이션을 개발하기 위한 핵심 구성 요소입니다. 이 프레임워크는 다양한 라이브러리와 API로 구성되어 있으며, 앱 개발에 필요한 기능들을 제공합니다. 안드로이드 앱의 생명주기 관리, 사용자 인터페이스 구성, 데이터베이스 처리, 네트워킹 작업 등을 지원합니다.

  2. 안드로이드 액티비티와 프래그먼트의 차이점은 무엇인가요? 안드로이드 액티비티(Activity)는 단일 화면을 나타내는 컴포넌트입니다. 사용자 인터페이스를 구성하고 액션을 처리하는 역할을 합니다. 반면에 안드로이드 프래그먼트(Fragment)는 액티비티 내에서 사용되는 재사용 가능한 UI 모듈입니다. 프래그먼트는 자체적인 생명주기를 갖고 액티비티와 독립적으로 관리될 수 있습니다.

  3. 안드로이드에서 액티비티 간 데이터 전달하는 방법에 대해 설명해주세요. 액티비티 간 데이터 전달에는 여러 가지 방법이 있습니다. 가장 일반적인 방법은 Intent를 사용하는 것입니다. 송신측에서는 Intent에 데이터를 추가하고, 수신측에서는 Intent에서 해당 데이터를 추출하여 사용할 수 있습니다. 또한, Bundle 객체를 사용해 데이터를 전달할 수도 있습니다. 이외에도 인터페이스 구현이나 브로드캐스트 리시버를 통한 데이터 전달 방식도 있습니다.

  4. 안드로이드 앱에서 메모리 누수가 발생하는 원인과 방지 방법은 어떤 것들이 있나요? 안드로이드 앱에서 메모리 누수는 주로 다음과 같은 경우에 발생할 수 있습니다. 첫째, 정적인 객체를 참조하는 경우입니다. 이 경우 해당 객체가 더 이상 필요하지 않더라도 가비지 컬렉션의 대상이 되지 않고 메모리에 남아있을 수 있습니다. 둘째, 컨텍스트(Context)를 제대로 해제하지 않는 경우입니다. 이 문제는 액티비티의 생명주기와 관련이 있으며, 올바른 컨텍스트 사용 및 해제가 필요합니다. 메모리 누수를 방지하기 위해 가비지 컬렉션, 약한 참조(Weak Reference) 사용, 불필요한 리소스 해지 등의 방법을 적용할 수 있습니다.

  5. 안드로이드에서 비동기 처리를 위해 어떤 방법들이 있나요? 안드로이드에서 비동기 처리를 위해 가장 일반적인 방법은 AsyncTask나 쓰레드(Thread)를 사용하는 것입니다. AsyncTask는 비동기 작업을 쉽게 실행하고 결과를 처리할 수 있는 메커니즘을 제공합니다. 쓰레드를 사용할 경우에는 백그라운드에서 비동기 작업을 처리하고, 핸들러(Handler)를 통해 UI 업데이트를 수행할 수 있습니다. 또한, 안드로이드에서는 RxJava나 Kotlin의 코루틴 등 다양한 비동기 처리 라이브러리와 패턴들도 제공되고 있습니다.

이 외에도 다양한 안드로이드 개발 관련 질문이 있을 수 있습니다. 경력 면접을 준비할 때는 안드로이드 프레임워크에 대한 이해와 실무 경험, 앱 개발에 대한 기본 지식을 갖추고 준비하는 것이 중요합니다. 면접 질문에 대해 공부하고 예시 코드를 작성해보며 자신의 경험을 잘 어필할 수 있도록 노력해보세요. #안드로이드 #면접질문