Kotlin 코루틴 Dispatcher 완벽 가이드 - IO, Main, Default, Immediate

✨ 개요

코틀린 코루틴의 Dispatcher는 어떤 스레드나 스레드 풀에서 코루틴이 실행될지는 결정하는 핵심 요소입니다. 올바른 Dispatcher 선택은 앱의 성능과 안정성에 매우 중요합니다.


1. 🧩 Dispatcher 종류와 특징

Dispatcher 특징
Dispatchers.Default CPU 집중 연산 (정렬, 계산 등) 에 최적화, 공유 풀 사용
Dispatchers.IO 파일/네트워크 I/O에 최적화, 많은 스레드 풀 보유
Dispatchers.Main 안드로이드 메인(UI) 스레드에서 동작, 화면 업데이트나 UI 이벤트 처리에 적합
Dispatchers.Main.immediate 코루틴이 이미 메인스레드에 있으면 즉시 실행, 그렇지 않으면 Main으로 디스패치

2. ⚙️ Dispatcher 사용 예제

suspend fun loadData() = withContext(Dispatchers.IO) {
    // 네트워크 DB I/O 처리
}

suspend fun calculate() = withContext(Dispatchers.Default) {
    // 무거운 CPU 연산
}

launch(Dispathcers.Main) {
    // UI 업데이트
}

3. 🧪 Dispatcher 선택 시 주의사항


4. 🧾 결론

Dispatcher는 코루틴의 실행 컨텍스트를 정의하는 핵심 구성요소입니다. 적절한 Dispatcher를 선택해 스레드 효율성과 성능을 높이고, UI와 백그라운드 작업을 안전하게 분리해 최적의 앱 구조를 설계해 보세요.



Related Posts