티스토리 뷰
5일차
메모리의 힙 영역을 너무 크게 잡으면 어떤 일이 생길까요?
힙 영역이 커질수록 스택 영역의 메모리가 상대적으로 줄어들어 스택 오버플로우
등의 문제가 발생할 확률이 증가하고, 운영 체제에서 프로그램이 필요로 하는
다른 메모리 영역에도 영향을 줄 수 있습니다.
Set과 Map의 차이는 무엇일까요?
Set은 중복된 요소를 허용하지 않는 컬렉션으로 같은 요소를 여러 번 추가해도 한 번만 저장됩니다.
Map은 키-값(key-value) 쌍의 모음으로 동일한 키에 새 값을 추가하면 기존 값을 덮어씌웁니다.
6일차
프로세스와 스레드에 대해 설명하고, 사용 영역의 관점에서 차이를 설명해주세요.
프로세스란 실행 중인 프로그램을 의미하며,
스레드는 프로세스 내에서 실행되는 작업의 단위에 해당합니다.
프로세스는 독립적으로 실행되며 서로 메모리 공간을 공유하지 않지만,
스레드는 프로세스 내에서 메모리와 자원을 공유하며 병렬적으로 작업을 처리합니다.
Kotlin에서 Null을 어떻게 처리하나요?
코틀린의 변수는 기본적으로 Non-Nullable 타입이지만 타입 뒤에 ?를 붙여
Nullable타입으로 변수를 선언해 null값을 할당할 수 있습니다.
Safe Call(?.) 연산자를 활용해 객체가 null인지 확인한 후, null이 아닐 때 해당 객체에 접근하는 방법도 있고,
Elvis 연산자(?:) 를 활용해 객체가 null일 경우 표현식 우측에 기본값을 제공하는 방법도 있습니다.
Non-Null Assertion(!!)는 객체가 null이 아님을 확신할 때 사용하는데
만약 객체가 null일 경우에는 예외를 발생시킵니다.
let Scope 함수를 활용해 객체가 null이 아닐 때에만 블럭 안의 작업을 수행할 수 있습니다.
lateinit 키워드를 활용해 변수를 나중에 초기화할 수 있으며
by lazy 키워드를 활용해 변수를 지연 초기화 시킬수도 있습니다.
7일차
크롬 브라우저에서 한 탭에 오류가 생기더라도, 다른 탭에 영향을 끼치지 않습니다.
그렇다면 각각의 크롬 탭은 프로세스일까요? 쓰레드일까요?
크롬 브라우저의 탭은 서로 간의 상태에 영향을 주지 않는 독립적인 프로세스로 실행됩니다.
interface와 abstract의 특징과 차이점에 대해 설명해주세요.
인터페이스는 추상메서드만 선언이 가능하며 다중 상속을 허용하지만,
추상 클래스는 추상메서드와 일반메서드 모두 포함하며 다중 상속이 불가합니다.
인터페이스는 객체의 행동을 정의하고 구현을 강제하는 목적으로 사용되고,
추상 클래스는 공통된 기능을 제공하고 세부적인 기능은 하위클래스에서 구현하는 방식으로 사용합니다.
8일차
멀티 스레딩은 어떤 환경에서 사용할까요? 사용 시 주의점은 무엇일까요?
멀티 스레딩은 애플리케이션이 여러 작업을 동시에 처리해야할 때 사용합니다.
과도한 스레드 간의 전환으로 인한 성능 저하를 방지하기 위해 적절한 스레드 수를 유지해야하며,
두 개 이상의 스레드가 서로의 자원을 기다리며 영원히 멈춰버리는 상황인 데드락이나,
두 스레드가 동시에 같은 자원에 접근해 결과가 실행 순서에 따라 달라지는 경쟁 상태를
방지하기 위해 스레드 간의 실행 순서와 접근 순서를 신중히 설계해야합니다.
LiveData와 MutableLiveData의 차이는 무엇인가요?
LiveData는 읽기 전용 Data Holder Class로 객체의 값을 변경할 수 없지만,
MutableLiveData는 LiveData의 서브 클래스로 데이터의 변경이 가능합니다.
9일차
동기와 비동기의 차이에 대해 설명해주세요.
동기 방식은 작업들을 순차적으로 처리하는 방식으로 한 작업이 끝나야 다음 작업을 시작하지만,
비동기 방식은 작업의 완료를 기다리지 않고 그 동안 다른 작업을 처리하는 방식이다.
Generic이란 무엇인가요?
제네릭은 프로그래밍에서 데이터 타입을 일반화하는 기법으로
클래스나 메서드 등에 사용되는 데이터 타입을 지정할 수 있도록 해줍니다.
'내일배움캠프 > Android 모의면접' 카테고리의 다른 글
튜터님과의 모의면접 #1 (0) | 2024.10.27 |
---|---|
면접카타 5주차 정리 (2) | 2024.10.27 |
면접카타 4주차 정리 (0) | 2024.10.27 |
면접카타 3주차 정리 (1) | 2024.10.27 |
면접카타 1주차 정리 (0) | 2024.10.27 |