취업을 준비하면서 질문 받았던 기술 면접 리스트들을 정리해서 작성해본다.
면접이 끝나고 기억 나는 질문들을 메모장에 적었지만 다 기억하지 못한거같아 기억나는대로 추가할 계획이다.
기술면접
안드로이드 4대 컴포넌트
Activity - 화면을 관리하는 컴포넌트, 사용자 이벤트 처리를 담당
Service - 백그라운드에서 특정 기능을 수행하는 컴포넌트, 메인 스레드에서 작동하기 때문에 별도 스레드가 필요
Broadcast Receiver - 브로드캐스트 메시지를 처리하는 컴포넌트
Content Provider - 앱 간 데이터 공유를 위한 클래스 제공, URI
액티비티 생명주기
onCreate() - 액티비티 시작될 때, 레이아웃 구성
onStart() - 액티비티 보이기 직전, 브로드캐스트 실행
onResume() - 액티비티 활성 상태, 상호작용 기능 구성
onPause() - 액티비티 부분적 활성 상태, 부분적 보일 때 실행, 곧 사라짐
onStop() - 액티비티 완전히 사라질 때, 다른 액티비티 보여질 때 호출
onDestroy() - 액티비티 종료 직전, 화면회전(구성변경) 포함
액티비티, 프래그먼트 차이
Activity - UI 화면을 그리는 컨테이너, 독립적 존재 가능
Fragment - UI 화면을 모듈화 할 수 있고 부분적으로 그릴 수 있는 컨테이너, 재사용 가능, 독립적 존재 불가능
Coroutine, Thread 차이
Coroutine - 동시성 비동기 수행
Thread - 병렬성 비동기 수행
자바, 코틀린 차이
간결성, 생산성, 안정성(null safe)
aar / aab / apk
aar - Android Archive, 안드로이드 라이브러리 프로젝트의 바이너리 배포판, JAR과 달리 리소스 파일 포함
aab - Android App Bundle, apk 대비 경량화 된 앱 파일
apk - Android Application Package, 어플리케이션 파일 확장자, 파일 용량 큼
intent, intent Filter
intent - 특정 컴포넌트에 대한 실행 정보를 넣어 실행하며 원하는 데이터 전달 기능,
명시적 인텐트- 실행할 액티비티 정확히 명시
암시적 인텐트 - 어떤 컴포넌트를 시행할 것인지 의도만 전달
intent Filter - 앱에 인텐트가 전달되었을 때 Intent Filter에 조건에 맞는 인텐트만 통과시킴(필터링)
Serializable / Parceable
Serializable - 자바에서 제공하는 인터페이스, 객체를 직렬화하여 전달하기 위해 사용, 자바의 Reflection 사용
Parceable - 안드로이드에서 제공하는 인터페이스, 객체를 전달하기 위해 사용, 안드로이드에서 직접 처리, Serializable보다 빠르고 안정성 좋음
자바 코틀린 구현체
자바 - 인터페이스 내에 메서드의 구현 코드 작성 불가, 다중 상속 가능
코틀린 - 인터페이스 내에 구현 코드 작성 가능, 다중 상속 불가능
로컬 db 종류
SQLite, Room
context
안드로이드 시스템이 어플리케이션이나 컴포넌트등을 관리하기 위해 만든 것
그 외 질문들
지원동기
자기소개
스트레스 푸는 방법
좋은 개발자란
좋은 회사란
프로젝트 소개
깃 협업 방법
협업툴 사용한 것, 이슈관리 방법