Language/Kotlin
Coroutines의 Main safety
이번 글에서는 Coroutines가 어떻게 main-safety하게 동작하는 지에 대해 설명해보려한다. 먼저 안드로이드 ViewModelScope에서 실행되는 코루틴은 기본적으로 main thread에서 실행된다. 이는 매우 합리적인 이유가 있는데 우리는 ViewModel에서 UI 관련 작업을 자주 수행하기 때문이다. 우리가 ViewModel에서 아래와 같은 함수를 실행한다고 가정해보자.fun performNetworkRequest() { viewModelScope.launch { val recentVersions = getVersions() // this is a suspend function }} 이렇게 네트워크 작업을 Retrofit으로 수행할 때, main thread blocking..