coroutine 3

[Kotlin Coroutine][init] 5. kotlin.coroutines vs kotlinx.coroutines

코루틴은 하나의 라이브러리에 있을 것 같지만 아니다! 1) 코틀린은 언어 차원에서 표준 라이브러리에 최소한의 저수준 API만 제공하고, 2) 다양한 다른 라이브러리에서 코루틴을 활용할 수 있도록 되었다. 1) 코틀린은 언어 차원에서 표준 라이브러리인 kotlinx.coroutines - 자유도를 보장하기 위해 필수 언어 차원에서의 최소한만 지원함 ㄴ> 여기에는 suspendCoroutine, Continuation 등 ㄴ> 라이브러리 개발자에게 적합 2) 다양한 다른 라이브러리 - 별도의 의존성을 추가해야 한다. - 애플리케이션 개발자들에게 적합 - 이 중 JetBrains에서 개발한 kotlinx.coroutines에는 코루틴을 위한 많은 라이브러리가 대표적이다. ㄴ> 여기에는 launch, async..

Android/Coroutine 2024.02.22

[코루틴 기초] Job

Job : '코루틴의 핸들'로 실행 중인 취소가능한 작업을 표현 - 코루틴을 고유하게 식별하고 수명 주기를 관리한다. - '코루틴 빌더' 실행 시 생성된다. => launch 또는 async로 만드는 각 코루틴은 Job 인스턴스를 반환 - 백그라운드 작업 - Job을 CoroutineScope에 전달하여 코루틴의 수명 주기를 추가로 관리 가능 ex) class ExampleClass { ... fun exampleMethod() { // Handle to the coroutine, you can control its lifecycle val job = scope.launch { // New coroutine } if (...) { // Cancel the coroutine started above, th..

Android/Coroutine 2022.07.08

Coroutine 예제로 개념잡기

안드로이드 공식문서 예제 따라하는 포스팅입니다. 1. 백그라운드 스레드에서 실행 예제 - '네트워크 요청' 작업은 작업이 지연되거나 부하되는 경우 문제가 되므로 이 작업을 코루틴에서 백그라운드 스레드에서 이 작업을 실행해보고자 한다. ▽ 네트워크 요청을 기본 스레드에서 했을 때 위험상황 더보기 기본 스레드에서 네트워크 요청을 보내면 응답을 받을 때까지 스레드가 대기하거나 차단됩니다. 스레드가 차단되는 경우 이로 인해 OS는 onDraw()를 호출할 수 없으므로 앱이 정지되고 애플리케이션 응답 없음(ANR) 대화상자가 표시될 수 있습니다 위와 같은 문제를 가진 코드가 아래와 같으며 문제해결을 위해 코루틴을 적용한다. ▽ 1) 네트워크 요청 작업 (@Repository클래스) sealed class Resu..

Android/Coroutine 2022.07.08