코루틴 기초와 범위
알맞은 범위에서 코루틴을 실행해 보세요.
코루틴 기초와 범위은(는) CoddyKit의 무료 Android Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Android Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
코루틴이란 무엇인가요?
코루틴을 사용하면 비동기 논블로킹 코드를 순차적인 방식으로 작성할 수 있습니다. 코루틴은 네트워크 및 데이터베이스 입출력과 같은 작업에서 콜백과 스레드를 대신하는 Kotlin의 방법입니다.
suspend 함수
suspend로 표시된 함수는 스레드를 차단하지 않고 일시 중지한 뒤 나중에 재개할 수 있습니다. 코루틴이나 다른 일시 중단 함수에서만 호출할 수 있습니다.
suspend fun fetchUser(): User {
delay(1000) // non-blocking pause
return User(1, "Ada", "ada@x.com")
}일시 중지와 차단 비교
delay는 코루틴을 일시 중지하지만 다른 작업이 스레드를 사용할 수 있도록 해 줍니다. Thread.sleep은 스레드 전체를 차단합니다. 코루틴은 효율성을 유지하기 위해 일시 중지를 우선합니다.코루틴 시작하기
CoroutineScope에서 launch를 사용해 코루틴을 시작합니다. 코루틴은 동시에 실행되며 결과를 반환하지 않습니다.
scope.launch {
val user = fetchUser()
println(user.name)
}async로 결과 가져오기
값을 반환받아야 할 때는 async를 사용합니다. await하는 Deferred를 반환합니다.
val deferred = scope.async { fetchUser() }
val user = deferred.await()CoroutineScope란 무엇인가요?
범위는 그 안에서 시작된 코루틴의 수명을 정의합니다. 범위를 취소하면 해당 범위의 모든 코루틴도 취소됩니다. 이것이 구조적 동시성입니다.
구조적 동시성
코루틴은 범위 안에서 실행되므로 실수로 범위보다 오래 실행될 수 없습니다. 따라서 누수를 방지할 수 있습니다. 화면이 사라지면 해당 범위가 취소되고 작업도 중지됩니다.
취소
범위나 작업을 취소하면 다음 일시 중지 지점에서 CancellationException이 발생하여 코루틴이 안전하게 중지됩니다.
val job = scope.launch { /* work */ }
job.cancel() // stops it cooperatively협력적 취소
코루틴은 협력해야 합니다. CPU를 오래 사용하는 반복문에서는 isActive를 확인하거나 일시 중단 함수를 호출해야 취소가 적용될 수 있습니다.
while (isActive) {
// do a chunk of work
}코루틴의 예외
launch에서 처리되지 않은 예외가 발생하면 범위로 전파되어 형제 코루틴을 취소합니다(SupervisorJob을 사용하는 경우 제외). 오류는 try/catch 또는 CoroutineExceptionHandler로 처리합니다.
Android에서 범위가 중요한 이유
Android는 구성 요소의 수명 주기에 연결된 범위를 제공합니다. 예를 들어 viewModelScope와 lifecycleScope를 사용하면 적절한 시점에 코루틴이 자동으로 취소됩니다. 다음 강의에서 자세히 알아보겠습니다.
빠른 확인
코루틴 범위에 대한 이해도를 확인해 보세요.
복습
다음 내용을 배웠습니다.
suspend함수는 차단 없이 일시 중지됩니다.launch는 실행 후 결과를 기다리지 않는 작업을 시작하고,async는 결과를 반환합니다.- CoroutineScope는 코루틴의 수명을 제한합니다(구조적 동시성).
- 취소는 협력적으로 이루어집니다.
자주 묻는 질문
“코루틴 기초와 범위” 강의는 무료인가요?
네 — “코루틴 기초와 범위” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Android Academy 강의 전체를 잠금 해제할 수 있습니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“코루틴 기초와 범위”에서 뭘 배우나요?
알맞은 범위에서 코루틴을 실행해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Android Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Android Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Android Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“코루틴 기초와 범위” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Android Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Android Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.