본문 바로가기

Kotlin_study/CodeLab

(5)
[Codelab] Hilt와 DI에 대해 이해하기 목차 1. 공부 이유 2. Hilt의 사용법 3. 후기, 이후 계획 4. 참고문헌 1. 공부 이유 지난 학기 객체지향 프로그래밍 수업에서 의존성 주입(DI)에 대해 배웠다. 이에 대해 이해한 내용을 정리해보면, 객체들이 각각의 일을 수행하다보면 객체들 사이에 의존성이 생기게 된다. 의존성이 생긴다는 것은 한 클래스가 변화했을 때, 이와 의존관계가 있는 클래스에도 변경 사항이 생긴다는 것을 의미한다. 그렇게 된다면 변경 사항에 대응하기 위해 드는 시간이나 불편함이 생길 것이고 이를 의존성 주입으로 해결할 수 있는 것이다. 그래서 나는 의존성 주입을 객체가 하던 일을 대신해주는 무언가를 만들어서 객체가 이를 신경쓰지 않아도 되게 하는 것으로 이해했다. Codelab을 통해 학습하거나 예제 코드들을 보다보면 ..
[Codelab] Coroutine에 대해 이해하기 2(with LiveData, Flow) 목차 1. 공부 이유 2. Coroutine이란? 3. LiveData와 코루틴 사용 4. Flow와 코루틴 사용 5. 후기, 이후 계획 6. 참고문헌 1. 공부 이유 이전 게시글에 이어서 안드로이드에서 코루틴을 활용하는 방법에 대해 더 깊게 이해하고자 한다. 2. Coroutine 이란? 메인 스레드를 blocking 하면 안되기 때문에 백그라운드 스레드에서 네트워크, DB 작업을 진행해야 하는 것으로 알고 있었다. 그러다보니 처음 안드로이드를 배울 때 했던 FLO 클론코딩에서는 코루틴을 사용하지 않고 했는데, 그렇다면 문제가 생겼어야 했던 것이 아닌가? 라는 생각이 들었다. Room은 dao에서 suspend function을 사용하고 Retrofit은 자동으로 suspend function을 만듦으..
[Codelab] Coroutine에 대해 이해하기 목차 1. 공부 이유 2. Coroutine이란? 3. 후기, 이후 계획 4. 참고문헌 1. 공부 이유 ViewModel 학습 이후 ViewModel 팩토리 패턴, Repository 패턴 등 공부를 연결해서 해 나가려고 하다보니 Flow와 코루틴에 대한 선행 지식이 있으면 학습에 용이하다고 codelab에 적혀 있어 이를 먼저 공부하고자 한다. 코루틴은 이전부터 학습해야 한다고 느꼈는데, 아무래도 비동기 처리를 하지 않다보니 어플에서 끊기는 현상이 있고 심각할 경우 ANR로 인해 원하는 기능을 구현하지 못하는 경우가 생겼기 때문이다. 우선 학습한 내용을 한 글에 다 담아내기에는 양이 방대하다고 느껴 이를 나누어서 작성해보고자 한다. 참고 Codelab 링크 Use Kotlin Coroutines in ..
[Codelab] LiveData에 대해 이해하기(+ DataBinding) 목차 1. 공부 이유 2. LiveData란? 3. DataBinding이란? 4. 후기, 이후 계획 5. 참고문헌 1. 공부 이유 ViewModel에 대해 학습하며 LiveData에 대해 학습할 필요성을 느껴서 학습하게 되었다. ViewModel만으로는 데이터 변경사항을 감지하고 이를 UI에 반영하는게 아니고 UI Controller에서 데이터 조작에 관한 책임을 분리하는 수단이었기 때문이다. 그 과정에서 DataBinding의 개념도 같이 등장하여 이도 함께 학습하는 시간을 가졌다. 참고 Codelab 링크 Use LiveData with ViewModel (android.com) 2. LiveData 란? LiveData는 데이터를 보유하며, 수명 주기를 인식하는, 관찰 가능한 클래스이다. 1) 데..
[Codelab] ViewModel에 대해 이해하기 목차 1. 공부 이유 2. ViewModel이란? 3. View와 ViewModel의 역할 4. 후기, 이후 계획 5. 참고문헌 1. 공부 이유 리팩토링하는 과정에서 ViewModel을 적용하려다보니 어느 부분에서 적용하고, 어떻게 적용할지에 대한 고민이 들었다. 이 과정에서 내가 ViewModel을 제대로 이해하지 못하고 있다는 생각이 들었고, 적용 이전에 이에 대해 더 공부해보는 시간을 가질 필요를 느껴 Codelab에서 관련 내용에 대한 글을 읽고 공부하는 시간을 가졌다. 참고 Codelab 링크 Store data in ViewModel (android.com) 2. ViewModel 이란? ViewModel은 데이터를 저장하는 안드로이드 아키텍처 구성요소 중 하나로 ViewModel에서 관리하는..