kotlin 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

Coroutine 예제로 개념잡기

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

Android/Coroutine 2022.07.08

Coroutine 기초

Coroutine 이란? : 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴 - 코루틴 은 일시 중단 가능한 계산의 인스턴스 코드의 나머지 부분과 동시에 작동하는 코드 블록을 실행한다는 점에서 개념적으로 스레드와 유사합니다. - 그러나 특정 스레드에 바인딩되지 않습니다(스레드 단위와 관련없음!) 한 스레드에서 실행을 일시 중지하고 다른 스레드에서 다시 시작할 수 있고, 한 스레드 내에서 여러 코루틴이 실행되기도 한다. - 실행을 일시중단 했다가 나중에 중단 시점부터 다시 실행 재개할 수 있다. - 모든 코루틴은 범위(Scope) 내에서 실행해야 합니다. 필요성 - 스레드는 값비싼 리소스이고 스레드를 차단하는 것은 비효율적이고 종종 바람직하지 않기 때문에..

Android/Coroutine 2022.07.08