kotlin/coroutines
1.5 코틀린 코루틴 이해하기 - 언어 차원에서의 지원 vs 라이브러리
hrniin
2025. 1. 10. 17:02
728x90
- 코틀린 언어에서 자체적으로 지원하는 부분(컴파일러의 지원과 코틀린 기본 라이브러리의 요소)
- 코틀린 코루틴 라이브러리(kotlinx.coroutines)
코루틴은 두 가지로 구성되어 있다.
코틀린 언어 차원에서는 자유도를 보장하기 위해 코루틴을 최소한으로 지원하고 있다.
다른 프로그래밍 언어에서 동시성을 구현한 스타일을 이식 하기 위해 사용할 수 있지만, 직접 다루기 쉽지는 않다.
그 예로 suspendCoroutine()이나 Continuation 등이 있다.
애플리케이션 개발자들보다는 라이브러리 개발자들에게 적합하다.
언어 차원에서 지원하는 것과 별개로 kotlinx.coroutines 라이브러리가 있다.
이 라이브러리를 사용하려면 프로젝트에 별도로 의존성을 추가해야 한다.
라이브러리는 코틀린 언어 차원에서 코루틴을 지원하기 위해 만들어졌다.
사용하기 훨씬 쉬우며 동시성을 명확하게 구현할 수 있다.
언어 차원에서의 지원 | kotlinx.coroutines 라이브러리 |
컴파일러가 지원하며 코틀린 기본 라이브러리에 포함되어 있다. | 의존성을 별도로 추가해야 한다. |
kotlin.coroutines 패키지에 포함되어 있다. | kotlinx.coroutines 패키지에 포함되어 있다. |
Continuation 또는 suspendCoroutines과 같은 몇몇 기본적인 것돌과 suspend 키워드를 최소한으로 제공한다. | launch, async, Deferred처럼 다양한 기능을 제공 한다. |
직접 사용하기 아주 어렵다. |
직접 사용하기 편리하게 설계되어 있다. |
거의 모든 동시성 스타일이 허용된다. | 단 하나의 명확한 동시성 스타일을 위헤 설계되어 있다. |
728x90