[kotlin] suspend 함수 개념 이해하기
Kotlin에서 suspend
키워드는 코루틴을 위한 함수를 정의할 때 사용됩니다. 이 키워드는 해당 함수가 일시 중단 가능하며, 비동기적으로 실행될 수 있음을 나타냅니다.
Suspend 함수란 무엇인가요?
Kotlin의 suspend
함수는 일시 중단 가능하고 코루틴 내에서 실행될 수 있는 함수를 나타냅니다. 이 함수들은 일시 중단 지점에서 실행을 일시 중지하고, 해당 지점에서 다시 시작할 수 있는 기능을 제공합니다. 이를 통해 비동기적인 코드를 동기적으로 작성하는 것이 가능해집니다.
언제 Suspend 함수를 사용해야 하나요?
일반적으로 네트워크 요청, 파일 입출력, 데이터베이스 액세스와 같은 I/O 작업을 수행할 때 suspend
함수를 사용합니다. 이러한 작업은 시간이 많이 소모되며, 블로킹을 유발하므로 비동기적으로 처리하는 것이 바람직합니다.
예시
아래는 suspend
함수를 사용하여 비동기적으로 데이터를 가져오는 예시 코드입니다.
import kotlinx.coroutines.*
suspend fun fetchDataFromServer(): String {
// 네트워크 요청 등의 작업 수행
delay(1000) // 1초 대기
return "Data from server"
}
fun main() {
// 코루틴 실행
GlobalScope.launch {
val data = fetchDataFromServer()
println(data)
}
Thread.sleep(2000) // 메인 스레드가 너무 빨리 종료되는 것을 방지하기 위한 대기 시간
}
위의 코드에서 fetchDataFromServer
함수는 suspend
함수로 정의되어 있습니다. 이 함수를 코루틴 내에서 호출하고 있으며, delay
함수를 통해 1초의 지연을 시뮬레이션하는 것을 볼 수 있습니다.
결론
Kotlin의 suspend
함수를 사용하면 비동기적인 작업을 보다 간단하게 다룰 수 있으며, 코루틴을 통한 비동기 프로그래밍을 지원합니다.
더 많은 정보를 원하시면 Kotlin 공식 문서를 참고하시기 바랍니다.
그럼 안녕히 계세요!