목표 생성자가 무엇이고, 생성자 오버로드가 무엇인지 이해한다. Fragment의 생성자 오버로드를 하지 말아야 하는 이유에 대해 이해한다. 생성자란? 생성자란 객체의 인스턴스를 생성할 때 호출되어 객체의 인스턴스를 반환하는 메서드를 뜻한다. 예를 들어 아래와 같은 클래스가 있다고 해보자 class GalaxyTab(name: String, size: Int) GalaxyTab 객체의 인스턴스는 다음의 방식으로 만들어낼 수 있다. val tabS7 = GalaxyTab("S7", 11) 우리는 GalaxyTab(name : String, size: Int)을 생성자라고 부른다. 생성자 오버로드란? 생성자 오버로드란 class의 생성자를 두 개 이상 가지는 것을 뜻한다. Kotlin에서는 constructo..
Android
목표 의존성 주입이 무엇인지 이해한다. 의존성 주입이 왜 필요한지 이해한다. 의존성 주입이란? 의존성 주입이란 클래스간 의존성을 클래스 외부에서 주입하는 것을 뜻한다. 의존성 주입 그 자체는 클래스간 의존성을 외부에서 주입하는 것을 뜻하지만, 일반적으로 우리가 사용하는 의존성 주입은 클래스에 대한 의존성의 인터페이스화를 통한 코드 유연성 증대 + 클래스의 인스턴스를 외부에서 생성하여 주입 을 동시에 하는 방향으로 진행된다. 아래에서 의존성이 무엇인지 왜 인터페이스화를 하는 것이 필요한지부터 살펴보자. 의존성이란 무엇이며 어떻게 유연하게 만들 수 있는가? 객체 지향 프로그래밍에서 클래스간에 의존성이 있다는 것은 클래스간에 의존 관계가 있다는 것을 뜻한다. 즉, 클래스 간에 의존(Dependency) 관계가..
목표 Activity의 Lifecycle에 대해 이해한다. 각 수명주기에 해당하는 메서드가 언제 호출되는지 알아야 한다. 개요 안드로이드의 리소스 제한으로 인해 Activity는 항상 살아있지 못한다. Activity는 Activity가 보여주는 화면(View)이 화면 상에서 뒤로 가거나, 화면 상에서 사라지게 될 경우 특정한 메서드를 호출하게 되는데, Activity의 Lifecycle은 Activity가 각 상황에서 어떤 메서드를 호출하는지를 알려준다. Activity Lifecycle onCreate() Activity가 시작될 때 불림 onStart() Activity가 보이기 전에 불림 Broadcast Receiver은 여기서 등록한다. onResume() Activity 일부가 보일 때 불림..
목적 MVVM 아키텍처의 각 부분이 어떤 역할을 하는지 안다. MVVM 아키텍처의 의의를 이해한다. MVVM 아키텍처 개요 MVVM 아키텍처는 View, View Model, Model 세가지로 나뉜다. 1. View : UI 클래스 - Activity와 Fragment View는 말 그대로 보이는 것이다. View의 가장 대표적 class인 Activity는 UI를 포함한 화면 하나를 가지고 있다. Activity나 Fragment와 같은 요소에서는 사용자에게 UI를 보여주며, 사용자와 소통하는 채널이 된다. View에서는 아래 ViewModel의 데이터를 관찰(Observe)하여 데이터 변경이 있을 시, View를 업데이트 시킨다. 보통 View를 업데이트 시킬 때 Data Binding Librar..
목적 MVVM 아키텍처가 등장하게 된 배경을 이해한다. MVVM 아키텍처의 필요성을 이해한다. MVVM 아키텍처의 등장 배경 안드로이드의 아키텍처는 크게 MVC, MVP, MVVM 3가지로 나뉜다. 아키텍처는 MVC, MVP, MVVM 순서로 나왔는데 각각은 이전 아키텍처를 개선하여 나온 것이다. 어떤 점에서 한계점이 있었고, 어떤점이 개선되었는지 아래에서 각각의 특징을 살펴보자. MVC : View와 Controller를 Activity, Fragment 클래스에서 담당 각 클래스가 강하게 결합되어 있을 경우, 한 클래스가 변경되면 다른 클래스 또한 같이 변경되어야 하기 때문에 유지보수 하기가 어렵다. 웹에서 널리 사용되었던 MVC 아키텍처에서는 안드로이드에서 사용하기 위해서 View단과 Control..