코틀린에서 코루틴을 생성하고 실행할 수 있는 범위를 관리할 수 있는 건 CoroutineScope(이하 코루틴 스코프)입니다
일시 중단함수(suspend(),await(),join(),delay()) 메서드는 코루틴 스코프 안에서만 호출이 가능합니다
다음 표는 주요 코루틴 스코프의 특징을 정리한 표입니다
GlobalScope | lifecycleScope | viewModelScope | CoroutineScope | |
설명 | 앱 전체에 걸친 글로벌 Scope | Activity 또는 Fragment의 Lifecycle에 바인딩 | ViewModel에 바인딩된 Scope | 커스텀 Scope |
라이프사이 | 앱이 종료될 때까지 살아 있음 | 해당 LifecycleOwner가 DESTROYED될 때 자동 취소 | ViewModel이 onCleared()될 때 자동 취소 | 직접 관리한 Job이 취소되면 함께 취소됨 |