Android 4대 컴포넌트
- Activity : 안드로이드에서 UI 를 관리하고 사용자가 발생시키는 이벤트를 처리함
- Service : 사용자 인터페이스를 갖지 않고 주로 백그라운드에서 오래 실해오디는 작업을 처리하기 위해 사용
- Broadcast Receiver : 안드로이드 시스템에서 발생하는 시스템 이벤트를 수신하고 이에 대한 반응을 수행
- Content Provider : 앱 간 데이터 공유를 관려하는 역할을 수행
Android 생명주기

- onCreate() : 액티비티가 생성될 때 호출되는 메소드. 초기화 작업이나 인터페이스 설정 등을 수행.
- onStart() : 액티비티가 화면에 보여지기 직전에 호출되는 메소드.
- onResume() : 액티비티가 사용자와 상호작용을 시작하고 활동 상태에 들어갈 때 호출되는 메소드. 사용자 입력을 받을 수 있음.
- onPause() : 액티비티가 일시 중지되거나 다른 액티비티가 화면을 가리는 등 화면에서 벗어나기 전에 호출되는 메소드.
- onStop() : 액티비티가 더 이상 사용자에게 보여지지 않고 화면에서 완전히 가려질 때 호출되는 메소드.
- onDestory() : 액티비티가 소멸될 때 호출되는 메소드.
- onStart() : 액티비티가 onStop 상태에서 다시 시작되기 전에 호출되는 메소드. 일시 중지 된 액티비티를 다시 시작할 때 필요한 초기화 작업을 수행.
Fragment 생명주기

- onAttach() : 프래그먼트가 액티비티에 연결될 때 호출되는 메소드. 액티비티에 붙을 때 필요한 초기화 작업 수행
- onCreate() : 프래그먼트가 생성될 때 호출되는 메소드. 초기화 작업이나 인터페이스 설정 등을 수행
- onCreateView() : 프래그먼트의 레이아웃을 그리는 메소드. UI 를 생성하고 반환.
- onViewCreated() : onCreateView 후에 호출되는 메소드. 프래그먼트 UI가 만들어진 이후 호출.
- onStart() : 프래그먼트가 화면에 보여지기 직전에 호출되는 메소드.
- onResume() : 프래그먼트가 사용자와 상호작용을 시작하고 활동에 들어갈 때 호출되는 메소드. 사용자 입력을 받을 수 있음.
- onPause() : 프래그먼트가 일시 중지되거나 다른 프래그먼트가 화면을 가리는 등 화면에서 벗어나기 전에 호출되는 메소드.
- onStop() : 프래그먼트가 더 이상 사용자에게 보여지지 않고 화면에서 완전히 가려질 때 호출되는 메소드.
- onDestroyView() : 프래그먼트의 UI가 소멸될 때 호출되는 메소드.
- onDestroy() : 프래그먼트가 소멸될 때 호출되는 메소드.
- onDetach() : 프래그먼트가 액티비티와의 연결이 끊길 때 호출되는 메소드. 액티비티와의 연결을 해제.
아키텍처 패턴
MVC
- 모델, 뷰 컨트롤러 세가지 구성 요소로 분리.
- 모델 : 데이터와 비즈니스 로직을 처리.
- 뷰 : 사용자 인터페이스를 표시.
- 컨트롤러 : 사용자 입력을 처리.
MVP
- 모델, 뷰, 프리젠터 세 가지 구성 요소로 분리.
- 모델 : 데이터와 비즈니스 로직을 처리.
- 뷰 : 사용자 인터페이스를 표시.
- 프리젠터 : 뷰와 모델 사이의 중간 역할. 데이터 처리 역할.
- 뷰와 프리젠터 사이에 인터페이스를 통한 느슨한 결합을 유지.
MVVM
- 모델, 뷰, 뷰모델 세 가지 구성 요소로 분리.
- 모델 : 데이터와 비즈니스 로직을 처리.
- 뷰 : 사용자 인터페이스를 표시
- 뷰모델 : 뷰와 모델 사이의 매개체 역할을 수행. 뷰와 완전히 분리되어 있으며, 데이터 바인딩을 통해 뷰와 동기화를 처리.