목표 의존성 주입이 무엇인지 이해한다. 의존성 주입이 왜 필요한지 이해한다. 의존성 주입이란? 의존성 주입이란 클래스간 의존성을 클래스 외부에서 주입하는 것을 뜻한다. 의존성 주입 그 자체는 클래스간 의존성을 외부에서 주입하는 것을 뜻하지만, 일반적으로 우리가 사용하는 의존성 주입은 클래스에 대한 의존성의 인터페이스화를 통한 코드 유연성 증대 + 클래스의 인스턴스를 외부에서 생성하여 주입 을 동시에 하는 방향으로 진행된다. 아래에서 의존성이 무엇인지 왜 인터페이스화를 하는 것이 필요한지부터 살펴보자. 의존성이란 무엇이며 어떻게 유연하게 만들 수 있는가? 객체 지향 프로그래밍에서 클래스간에 의존성이 있다는 것은 클래스간에 의존 관계가 있다는 것을 뜻한다. 즉, 클래스 간에 의존(Dependency) 관계가..
분류 전체보기
목표 배열의 특징을 안다 배열을 조작하는 방법을 안다. 배열(Array) 정의 배열(Array)이란 하나의 변수에 여러 값을 저장하기 위해 연속된 메모리 공간을 차지하는 정적(Static)인 자료구조이다. 개요 배열은 여러 값을 저장하기 위해 메모리의 연속적인 공간을 차지하고 있다. 연속적인 공간 다음의 공간이 비어있을지는 알 수가 없으므로, 안정성을 위해 배열(Array)의 크기는 생성할 때 정해지며 배열의 크기를 늘리거나 줄일 수 없다. 우리는 이를 정적(Static)이라고 부른다. 예를 들어 아래의 코드를 실행할 시, 메모리에 그림1과 같이 올라간다. val stringArray: Array = arrayOf("a", "b", "c") val intArray: Array = arrayOf(1, 2,..
목표 ZonedDateTime이 날짜, 시간, 시간대로 이루어진 것을 이해한다. ZonedDateTime을 생성하고 조작하는 방법을 안다. 개요 앞서 LocalDate, LocalTime, LocalDate Class들에서 우리는 날짜(연, 월, 일)와 시간(시, 분, 초)을 다루는 방법을 살펴보았다. 하지만, 날짜(연, 월, 일)과 시간(시, 분, 초)만으로는 절대값을 갖는 시간이 완성되지 않는다. 그것은 바로 시간대 때문이다. UTC라 불리는 시간대로 인해 한국에서의 저녁 9시는 미국의 새벽 4시이다. 이러한 시간대가 있어야 비로소 절대값을 갖는 시간이 완성된다. ZonedDateTime Class는 바로 이러한 세가지 요소를 모두 포함하는 Class이다. ZoneDateTime은 그 자체로 절대값을..
목표 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..