튜터님과 모의면접 #2 Fragment 생명 주기는 어떻게 구성되어 있나요? 프래그먼트가 액티비티에 연결되는 시점에 onAttach가 호출되며이 때 context에 대한 참조를 얻게 됩니다. 프래그먼트가 생성되는 시점에서 onCreate가 호출되며여기서 프래그먼트 관련 초기 설정을 진행합니다. onCreateView가 호출되는 시점에서 뷰가 생성되고 해당 함수의 호출이 완료되면,onViewCreated가 호출되어 뷰의 초기 설정을 진행할 수 있습니다.onViewStateRestored는 저장해둔 상태가 복원되었을 때 호출됩니다. 프래그먼트가 사용자에게 보여질 수 있을 때 onStart가 호출되고사용자와 상호작용이 가능한 상태가 되면 onResume이 호출됩니다. 프래그먼트가 사용자와 상호작용을 중단하면 ..
26일차 선택 정렬과 버블 정렬에 대해 설명해봅시다.선택 정렬은 정렬되지 않은 데이터들 중 가장 작은 데이터를 찾아가장 앞의 데이터와 교환해나가는 방식으로 데이터를 정렬합니다.O(n²)의 시간 복잡도를 가지며, 데이터 이동 횟수가 적단 특징이 있습니다. 버블 정렬은 인접한 두 요소를 비교하여 크기가 큰 요소를앞으로 보내는 방식으로 데이터를 정렬합니다.O(n²)의 시간 복잡도를 가지며, 성능이 좋지 않지만 구현이 쉽단 특징이 있습니다. MVVM ,MVC, MVP 패턴이란 무엇인가?해당 디자인 패턴들에서 M은 Model의 약자로 데이터와 관련된 요소이며,V는 View의 약자로 사용자 인터페이스에 해당하는 요소입니다. MVC 패턴은 사용자 입력을 받으면 Controller가 Model을 변경하고,Model의..
24일차 서버와 클라이언트에 대해 설명해보세요.서버는 데이터나 리소스를 제공하는 시스템으로 클라이언트의 요청을 처리하고그에 대한 응답을 반환하는 시스템이고, 클라이언트는 사용자를 대표하여 서버에 요청을 보내고그에 대한 응답을 받는 장치 및 프로그램입니다. Android의 ConstraintLayout이 다른 레이아웃들에 비해 가지는 장점과 단점은 무엇인가요?ConstraintLayout은 View간의 제약조건을 설정하는 방식으로 UI를 배치하기에복잡한 UI를 구성하기에 좋고 다양한 화면 크기에 대응할 수 있습니다. 또한 Visual Editor를 지원하여 디자인 작업을 직관적으로 할 수 있습니다.다만 간단한 레이아웃을 구현하는데는 비효율적이라는 단점이 있습니다. 25일차 정렬 알고리즘이란 무엇이며, ..
튜터님과의 모의면접 #1 안드로이드 4대 컴포넌트는 무엇인가요?액티비티는 사용자와의 상호작용을 담당하는 유저 인터페이스에 해당하며,앱 실행 시에는 설정해둔 메인 액티비티가 호출이 되며 앱이 시작됩니다.생명 주기 메소드를 재정의하여 리소스를 효율적으로 관리하고,앱 상태나 데이터를 적절하게 유지할 수 있습니다. 서비스는 백그라운드에서 실행되는 컴포넌트로 UI 없이오랜 시간 동안 처리해야되는 작업이나, 애플리케이션이 종료되어도계속 실행되어야 하는 작업을 처리하는 데 사용됩니다. 리시버는 안드로이드 시스템이나 다른 앱으로부터 전송되는브로드캐스트 메시지를 수신하고 이를 처리하는 역할을 하는 컴포넌트 입니다.디바이스의 변경사항을 감지해 알리거나 SMS를 수신하는 등의 기능을 합니다. 프로바이더는 앱 사이에서 파일 ..
20일차 Java의 가비지 컬렉션 방식과 Android에서의 구현 방식을 설명해 주세요. Java의 가비지 컬렉션은 메모리 관리 자동화를 위한 기법으로,필요하지 않은 객체를 자동으로 제거하는 방식입니다. 현재 도입된 런타임 방식인 ART에서는 GC가 앱의 메인 스레드와독립적으로 동작하는 CMS(Concurrent Mark-and-Sweep) 방식을 사용합니다. 해당 방식은 Dalvik의 STW(Stop-The-World)현상을 완화하여GC 도중에 애플리케이션이 계속 실행될 수 있도록 합니다. GC에 의해 관리되는 메모리는 Young Generation과 Old Genenration으로 나뉩니다.Young Generation에는 짧은 생명 주기의 객체가 모이며여기서 살아남은 객체들은 Old Generati..
15일차 전역 변수와 정적 변수의 차이는?전역 변수는 클래스 외부에서 선언되며 모든 함수나 클래스에서 접근이 가능합니다.정적 변수는 클래스 내부에서 선언되며 클래스의 인스턴스를생성하지 않고도 클래스 이름을 통해 접근하는 것이 가능합니다. Android에서 Parcelable과 Serializable의 차이점과 각각의 사용 시기는 언제인가요?Parcelable은 개발자가 직접 직렬화/역직렬화 하는 로직을 작성해야합니다.Serializable은 객체의 상태를 자동으로 직렬화 할 수 있지만 Parceable보다 느릴 수 있습니다. Parcelable은 Android에 최적화 되어있기에 Android 앱에서 성능이 중요하고객체의 직렬화/역직렬화가 빈번하게 일어날 땐 Parcelable을 사용하며,간단한 구현을..
10일차 블로킹과 논블로킹의 차이에 대해 설명해주세요.블로킹 방식은 특정 작업이 완료될 때까지 현재 스레드나 프로세스가 멈추지만,논블로킹 방식은 특정 작업이 완료되지 않더라도 스레드가 계속해서 다른 작업을 할 수 있습니다. String 객체가 불변인 이유는 무엇인가요?Java에서 동일한 문자열 리터럴에 대해 동일한 String 객체를 재사용할 수 있도록 하는String Pool을 구현하기 위해 String 객체를 불변으로 설계하였으며,이는 성능 최적화, 스레드 안전성, 보안, 캐싱과 같은 다른 이점들을 제공합니다. 11일차 객체지향이란 무엇인지 설명해주세요.객체지향이란 프로그램을 객체라는 단위로 나누어 설계하고객체 간의 상호작용을 통해 로직을 구현하는 프로그래밍 방식입니다. 객체는 프로그래밍에서 필요..
5일차 메모리의 힙 영역을 너무 크게 잡으면 어떤 일이 생길까요?힙 영역이 커질수록 스택 영역의 메모리가 상대적으로 줄어들어 스택 오버플로우등의 문제가 발생할 확률이 증가하고, 운영 체제에서 프로그램이 필요로 하는다른 메모리 영역에도 영향을 줄 수 있습니다. Set과 Map의 차이는 무엇일까요?Set은 중복된 요소를 허용하지 않는 컬렉션으로 같은 요소를 여러 번 추가해도 한 번만 저장됩니다.Map은 키-값(key-value) 쌍의 모음으로 동일한 키에 새 값을 추가하면 기존 값을 덮어씌웁니다. 6일차 프로세스와 스레드에 대해 설명하고, 사용 영역의 관점에서 차이를 설명해주세요.프로세스란 실행 중인 프로그램을 의미하며,스레드는 프로세스 내에서 실행되는 작업의 단위에 해당합니다. 프로세스는 독립적으로 실..