개발일기

2025년 최신: Kotlin 코루틴 실전 예제 총정리

뱅우 2025. 8. 1. 10:18
반응형

2025년 최신: Kotlin 코루틴 실전 예제 총정리

Kotlin Coroutine(코루틴)은 안드로이드에서 비동기 작업을 처리할 때 필수적인 도구입니다. 하지만 개념이 어렵거나 실전 코드가 부족해서 헤매는 경우가 많죠.

이번 글에서는 실제 앱에서 자주 쓰이는 코루틴 예제를 상황별로 정리했습니다.

✅ 1. ViewModel에서 API 호출 예제


class MyViewModel : ViewModel() {
    private val _data = MutableLiveData<String>()
    val data: LiveData<String> = _data

    fun loadData() {
        viewModelScope.launch {
            val result = apiService.getData() // suspend fun
            _data.value = result
        }
    }
}

✅ 2. async/await로 동시에 여러 작업 처리


viewModelScope.launch {
    val userDeferred = async { api.getUserInfo() }
    val postDeferred = async { api.getUserPosts() }

    val user = userDeferred.await()
    val posts = postDeferred.await()
    // UI 갱신
}

✅ 3. Room DB insert & select


viewModelScope.launch(Dispatchers.IO) {
    userDao.insert(User("홍길동", 25))
    val userList = userDao.getAllUsers()
    withContext(Dispatchers.Main) {
        _users.value = userList
    }
}

📌 tip. IO Dispatcher는 꼭 명시!

네트워크, DB 작업은 Dispatchers.IO에서 실행하고, UI 갱신은 Dispatchers.Main에서 하세요.

반응형