본문 바로가기

Coroutine

(3)
📌Coroutine(코루틴) 실습 : viewModelScope, launch, suspend, join 코루틴에 대한 내용을 공부하고 Android에서 사용해오다 깔끔하게 정리해보려 합니다. 1. 모듈 수준의 build.gradle 파일에 ViewModel KTX 라이브러리 종속성 추가 def lifecycle_version = "2.4.1" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" viewModelScope() 함수를 제공받기 위해서 ViewModel KTX 라이브러리를 추가합니다. 2. ViewModel 인스턴스 초기화 class MainActivity : AppCompatActivity() { private lateinit var mainViewModel: MainViewMode..
👋Coroutine : 1. Coroutine이란 fun routine() { subRoutine() } fun subRoutine() { .... } Routine은 컴퓨터 프로그램의 일부이며 특정한 일을 실행하기 위한 일련의 명령입니다. 이러한 일련의 명령을 함수라고 합니다. Sub Routine은 함수 내부에 함수가 존재하는 경우 내부에 존재하는 함수를 의미합니다. 즉 sub routine은 routine에 의해 순차적으로 수행되게 됩니다. Coroutine이란 코루틴은 무엇일까? 위에서 확인했던 Routine과 Sub Routine은 순차적으로 수행되었지만 Coroutine은 함께 수행됩니다. 스레드는 선점형 멀티태스킹으로 실제로 멀티코어를 사용해 *병렬성을 가질 수 있지만 코루틴은 비선점형 멀티태스킹으로 CPU를 시간분할하여 사용하기 때문에 실..
Coroutines - Part 1. Coroutine이란 Coroutine 코루틴은 기존에 비동기 처리 시의 Callback 구현, cancel 작업, Resource 관리 등을 해야하는 불편을 줄이고 비동기 처리를 간단하게 할 수 있도록 해주며, MainThread가 bockling 되는 상태를 관리할 수 있도록 도움을 준다고 한다. ​ 보통 네트워크를 call하고 ui를 업데이트 시키는 작업을 할 때 MainThread에서 비동기 처리가 허용되지 않아 Exception: NetworkOnMainThreadException 예외가 발생하고, 이 것을 위해 thread에 작업을 시키면, ui를 업데이트 시키는 작업은 Ui Thread에서 작업해야 하므로 또 Exception: CalledFromWrongThreadException 예외가 발생한다. 그래서 th..