티스토리 뷰
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 Generation으로 이동합니다.
Old Generation에서는 Young Generation보다
GC가 덜 발생하지만 GC 발생 시에는 더 많은 메모리를 정리합니다.
Android 개발에서 SavedStateHandle의 역할은 무엇인가요?
SavedStateHandle은 뷰모델이 액티비티나 프래그먼트의
상태를 저장하고 복원하는 데 사용되는 유틸리티입니다.
ViewModel 내부에서 UI 상태를 저장하고 Activity나 Fragment가
재생성될 때, UI 데이터를 복원하는 역할을 합니다.
21일차
HTTP 의 특징과 문제점은 무엇인가?
HTTP는 클라이언트가 서버에 요청을 보내면 서버가 요청에 대한
응답을 보내는 클라이언트 - 서버 구조로 이루어져 있습니다.
HTTP는 비연결형 프로토콜로 요청과 응답이 끝나면 서로 간의 연결이 끊깁니다.
서버는 클라이언트의 상태를 보존하지 않기에 각 요청을 독립적으로 처리합니다.
HTTP는 비연결성을 가지기에 클라이언트와 서버간의 상태를 유지하기 어려워
세션 유지를 위해 쿠키, 세션, 토큰 등의 추가적인 수단을 사용해야 하며
이로 인해 추가적인 복잡성과 보안 위험이 생길 수 있습니다.
Retrofit의 장점은 무엇인가요?
Retrofit은 Android에서 REST API 통신을 구현하기 위해 쓰는 라이브러리로
인터페이스를 사용해 API 호출을 정의하므로, 가독성있는 코드를 작성할 수 있습니다.
OkHttp를 기반으로 동작하기에 안정성을 지니며,
인터셉터를 사용한 요청과 응답의 확장 및 수정이 가능해 확장성을 뛰어납니다.
또한 다양한 데이터 형식에 대한 데이터 변환 컨버터를 제공하고,
코루틴과 RxJava와 같은 비동기 프로그래밍 라이브러리와 연동이 가능합니다.
22일차
HTTPS 의 특징은 무엇인가?
HTTPS는 HTTP에 SSL 또는 TLS 프로토콜을 추가하여 보안을 강화한 버전입니다.
HTTPS 프로토콜을 이용하면 서버와 클라이언트 간의 모든 통신 내역이 암호화되어
데이터를 안전하게 주고 받을 수 있습니다.
데이터를 주고받을 때 해시 함수를 사용한 변조 여부를 확인으로 데이터의 무결성을 보장하고,
서버와 클라이언트 간의 상호 인증을 통해 신뢰성을 확보합니다.
RecyclerView의 동작 원리는 무엇인가요?
리싸이클러뷰는 스크롤 시에 화면에 보이지 않는 아이템들의 뷰를
재활용하여 새로운 아이템을 표시하는 방식으로 동작합니다.
RecyclerView Item의 재활용 과정은 어떻게 되나요?
어댑터의 onCreateViewHolder는 리싸이클러뷰가 화면에 처음 보일 때 호출되어
각 아이템의 참조를 저장하는 뷰홀더를 생성합니다.
스크롤 시에 화면에서 보이지 않는 뷰홀더는 재활용 풀에 들어갑니다.
다시 나타난 아이템은 재활용 풀에서 ViewHolder를 가져와
onBindViewHolder에서 데이터를 바인딩 하는 방식으로 표시됩니다.
23일차
RESTful API란 무엇인지 REST의 핵심 원칙에 맞추어 설명하세요.
RESTful API는 클라이언트와 서버 간의 상호작용을 정의하는 아키텍처 스타일로
클라이언트 - 서버 구조를 가지며 서버가 클라이언트의 상태를 유지하지 않습니다.
리소스를 고유한 URI를 통해 식별하며 HTTP 메서드를 사용해 리소스를 조작합니다.
리소스는 클라이언트가 원하는 형식으로 반환될 수 있습니다.
Android의 메모리 관리에서 GC Root와 WeakReference의 개념과 사용 사례를 설명해 주세요.
GC Root는 가비지 컬렉션에서 메모리 정리를 시작하는 지점에 해당합니다.
GC Root는 로컬 변수나 파라미터 객체, static변수, 실행 중인 스레드의 객체 등에서 발생하며
GC Root와 연결이 끊어진 객체들은 가비지 컬렉터에 의해 메모리에서 해제됩니다.
WeakReference는 객체가 가비지 컬렉터에 의해 더 쉽게
회수될 수 있도록 하는 일종의 참조 방식입니다.
WeakReference로 선언된 객체는 GC Root에서 더 이상 참조되지 않을 때
가비지 컬렉터에 의해 즉시 메모리에서 해제됩니다
안드로이드에서 Activity와 Fragment등의 UI 요소는 GC Root로 간주되며,
이들에 대한 강한 참조는 해제되지 않기에 메모리에 계속 존재합니다.
그렇기에 UI 요소를 WeakReference로 관리하여 해당 UI 요소가 더 이상
필요하지 않을 때 메모리에서 자동으로 해제될 수 있도록 할 수 있습니다.
'내일배움캠프 > Android 모의면접' 카테고리의 다른 글
면접카타 6주차 정리 (1) | 2024.10.27 |
---|---|
튜터님과의 모의면접 #1 (0) | 2024.10.27 |
면접카타 4주차 정리 (0) | 2024.10.27 |
면접카타 3주차 정리 (1) | 2024.10.27 |
면접카타 2주차 정리 (0) | 2024.10.27 |