티스토리 뷰

10일차

 

블로킹과 논블로킹의 차이에 대해 설명해주세요.

블로킹 방식은 특정 작업이 완료될 때까지 현재 스레드나 프로세스가 멈추지만,

논블로킹 방식은 특정 작업이 완료되지 않더라도 스레드가 계속해서 다른 작업을 할 수 있습니다.

 

 

String 객체가 불변인 이유는 무엇인가요?

Java에서 동일한 문자열 리터럴에 대해 동일한 String 객체를 재사용할 수 있도록 하는

String Pool을 구현하기 위해 String 객체를 불변으로 설계하였으며,

이는 성능 최적화, 스레드 안전성, 보안, 캐싱과 같은 다른 이점들을 제공합니다.

 


 

11일차

 

객체지향이란 무엇인지 설명해주세요.

객체지향이란 프로그램을 객체라는 단위로 나누어 설계하고

객체 간의 상호작용을 통해 로직을 구현하는 프로그래밍 방식입니다.

 

객체는 프로그래밍에서 필요한 데이터를 추상화하여 표현한 것으로,

객체의 속성 및 상태를 나타내는 변수와 객체가 수행하는 동작이나

기능을 정의하는 메소드를 구성 요소로 가집니다.

 

 

SOLID 원칙은 무엇인가요?

SOLID 디자인 원칙이란 객체지향 프로그래밍에서 준수해야 할 5가지 설계 원칙입니다.

 

SOLID 원칙은 각각 단일 책임 원칙, 개방-폐쇠 원칙, 리스코프 치환 원칙,

인터페이스 분리 원칙, 의존성 역전 원칙에 해당합니다.

 

 

SharedFlow와 StateFlow를 앱에 어떤 기능에 사용했고 장단점은 무엇인지 알려주세요.

 

회원가입 기능을 구현할 때 사용했습니다.

 

StateFlow로는 회원가입의 진행 상태를 관리하였고,

SharedFlow로는 밸리데이션 메세지의 상태를 관리하였습니다.

 

StateFlow는 상태를 지속적으로 유지하기에 구독 시 언제든 가장 최신의 상태를

받아올 수 있지만 일회성 이벤트를 처리하기 어렵다는 단점이 있습니다.

 

SharedFlow는 상태를 유지하지 않으므로 일회성 이벤트 처리에 적합하나

최신 상태 유지나 과거의 데이터를 받아오는 것이 불가하다는 단점이 있습니다.

 


 

12일차

 

객체지향에서 상속이란 무엇인지, 예시를 들어서 설명해봅시다.

객체지향에서 상속이란 부모 클래스의 속성과 메소드를 자식 클래스가 물려받는 것을 의미합니다.

 

만약 상속을 이용해 동물들을 객체로 구현한다고 하면, 부모 클래스에는 동물들의

공통적인 행동을 메소드를 정의하고 각각의 동물 객체에 해당하는 자식 클래스는

해당 부모 클래스를 상속하여 부모 클래스의 메서드를 재정의하는 오버라이딩을 진행하면 됩니다.

 

 

Android 런타임(ART)와 Dalvik VM의 차이점을 설명해 주세요.

Dalvik VM 컴파일 방식은 앱 구동 중에 실시간으로 컴파일을 하기 때문에

설치 속도가 빠르지만 실행 속도는 느리다는 단점이 있습니다.

 

ART 컴파일 방식은 Dalvik VM 컴파일 방식의 단점을 보완하기 위해 만들어졌습니다.

ART 컴파일 방식은 앱 설치 시에 컴파일을 하기에 설치 속도는 느리지만, 실행속도는 빠릅니다.

 


 

13일차

 

객체지향에서 추상화란 무엇인지 예시를 들어 설명해봅시다.

객체지향에서 추상화란 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미합니다.

 

만약 추상화를 이용해 동물들을 객체로 구현한다 하면, 부모 클래스에는 동물들의

공통적인 행동을 추상 메소드로 정의하고 각각의 동물 객체에 해당하는 자식 클래스는

해당 부모 클래스를 상속하여 부모 클래스의 추상 메소드를 구현하면 됩니다.

 

 

Android에서 Parcelable 인터페이스의 역할과 사용 사례를 설명해 주세요.

Parcelable 인터페이스는 Android에서 객체를 직렬화하는 역할을 하며

액티비티 및 프래그먼트 간의 데이터 전달을 하려 할 때 사용됩니다.

 


 

14일차

 

메모리의 종류에 대해 설명하고, 종류가 여러가지인 이유에 대해 설명해주세요.

메모리의 종류는 휘발성을 지니고 있지만 읽거나 쓸 수 있는 RAM과

휘발되지는 않지만 읽기만 가능한 ROM으로 나뉩니다.

 

메모리의 종류가 다양한 이유는 성능, 용도, 비용 등을 최적화하기 위해서입니다.

 

 

Android의 Handler와 Looper의 개념을 설명해주세요.

안드로이드에선 멀티 쓰레딩 환경을 구축하기 위해 Looper와 Handler를 사용합니다.

하나의 쓰레드는 하나의 Looper를 가지며, Looper는 오직 하나의 쓰레드만을 담당합니다.

 

각 쓰레드의 Looper 내부에는 MessageQueue 라는 것이 존재하며,

여기서는 해당 쓰레드가 처리할 동작들에 해당하는 메시지가 선입선출 방식으로 쌓입니다.

 

Looper는 무한 루프를 돌며 큐에 쌓인 메세지들을 Handler로 전달하는 역할을 합니다.

Handler는 메시지를 Looper의 큐에 넣거나 Looper에서 전달받은 메시지를 처리하는 역할을 한다.

'내일배움캠프 > Android 모의면접' 카테고리의 다른 글

튜터님과의 모의면접 #1  (0) 2024.10.27
면접카타 5주차 정리  (2) 2024.10.27
면접카타 4주차 정리  (0) 2024.10.27
면접카타 2주차 정리  (0) 2024.10.27
면접카타 1주차 정리  (0) 2024.10.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함