[kotlin] 코틀린 스크립트에서의 비동기 처리 방법
코틀린은 강력한 비동기 처리 기능을 제공하여 스크립트 내에서 효율적으로 비동기 작업을 수행할 수 있습니다. 비동기 처리란, 작업의 결과를 기다리지 않고 다른 작업을 동시에 수행할 수 있는 방식을 의미합니다.
1. 코루틴 사용
코틀린에서 비동기 작업을 처리하기 위해 가장 많이 사용되는 방법은 코루틴(coroutine)입니다. 코루틴은 비동기 작업을 동시에 실행하고 결과를 반환할 수 있는 가벼운 스레드입니다.
import kotlinx.coroutines.*
fun main() {
// 비동기 작업을 수행할 코루틴 스코프 생성
val scope = CoroutineScope(Dispatchers.Default)
// 비동기 작업 시작
scope.launch {
val result = async { // 비동기로 실행할 작업
delay(1000) // 1초 동안 딜레이
"Hello, Kotlin!"
}.await() // 작업 결과 반환
println(result) // "Hello, Kotlin!" 출력
}
// 메인 스레드는 코루틴 작업이 완료될 때까지 대기하지 않고 종료됨
}
위의 예제에서는 launch
함수로 코루틴을 시작하고, async
함수로 비동기 작업을 수행합니다. async
함수는 결과를 반환하지 않고 await
함수를 통해 작업이 완료될 때까지 대기한 후 결과를 반환합니다.
2. 콜백 기반 비동기 처리
때로는 콜백 기반의 비동기 처리를 해야하는 상황도 있을 수 있습니다. 코틀린 스크립트에서는 콜백 함수를 사용하여 비동기 작업을 처리할 수 있습니다.
fun main() {
val result = performAsyncTask { data ->
// 비동기 작업이 완료되면 실행될 콜백 함수
println("Async task result: $data")
}
// 메인 스레드는 비동기 작업이 완료될 때까지 대기하지 않고 종료됨
}
fun performAsyncTask(callback: (String) -> Unit) {
// 비동기 작업 실행
GlobalScope.launch {
delay(1000) // 1초 동안 딜레이
callback("Hello, Kotlin!")
}
}
위의 예제에서는 performAsyncTask
함수를 통해 비동기 작업을 실행하고, callback
을 인자로 받아 작업이 완료되면 실행될 콜백 함수를 전달합니다.
결론
코틀린 스크립트에서 비동기 처리를 위해 코루틴을 사용하거나 콜백 기반의 비동기 처리를 할 수 있습니다. 각각의 방법은 프로젝트의 요구 사항에 따라 선택하여 사용할 수 있습니다. 비동기 처리를 통해 스크립트의 성능을 향상시키고 다양한 작업을 동시에 수행할 수 있습니다.