
Kotlin coroutines은 기존 Java Thread, 안드로이드에서 제공하는 AsyncTask, ReactiveX 패러다임을 일부 구현한 RxJava를 대신할 수 있는 Asynchronous/Non-blocking programming을 제공한다. 참고로 기존에 작성하였던 글에서 Kotlin Coroutines을 알아보고, 안드로이드에 librar
Kotlin Coroutines을 컨트롤하기 위한 Job을 제공해준다. 이 Job은 N 개의 coroutines의 동작을 제어할 수도 있으며, 하나의 coroutines 동작을 제어할 수도 있다. 먼저 Job이 어떤 것인지 알아보고, exception 발생 케이스를 함께 알아보겠다. Job Coroutines의 Job은 결국 coroutines의 상태를 가
이전 글에서 Kotlin coroutines을 제어할 수 있는 Job에 대해 알아보았다. 기본적인 Job 초기화 후 사용한데 어떤 방법이 좋을까? 먼저 이전 글에서 초기화 때 적용했던 방법을 다시 살펴보자. 이 코드는 CoroutineScope 초기화 시 Job을 함께 초기화하여 사용한다.(+를 이용하여 초기화한다.) 이렇게 초기화 함에 따라 Corouti
약 1년 전 Coroutines을 처음 다루었고, RxJava에 대해서 조금 익숙하게 사용할 시점에 작성했던 글이다. 그간 지원은 다음과 같다. 2019 Google I/O에서 Coroutines을 적극 도입하기로 하였고, ViewModel/LiveData 등을 위한 CoroutineScope을 제공하고, Coroutines에서도 RxJava Cold Ob
Callback Listener에서 전달되어오는 값을 Coroutines Flow에 전달하려면 어떻게 할 수 있을까?에서 시작한 고민을 글로 정리해 둔다. 이 글은 Flow에 대한 설명을 하지는 않을 것이지만 이를 해결하기 위해 사용한 방법은 아래와 같다. Callback으로 들어온 값은 Coroutines의 suspend가 아니다. flow에 emit 하
코루틴의 runBlocking에 대해서 이야기했다. Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자! 결국 잘 알고 사용하는 건 문제가 없다. 역시나 잘 못 알고 사용하는 경우라면 사실 사용치 않는 게 맞는다고 생각한다. 이번 글은 코루틴 관련 2 번째 글로 GlobalScope에 대해서 알아보려고 한다. 이 역
runBlocking과 GlobalScope에 대해서 알아보았다. Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자! Kotlin Coroutines의 GlobalScope을 어떻게 사용할 수 있을까? - 사실 추천하지 않는다. 이 두 가지의 코루틴은 이유 없이 사용해서는 안 되는 것들이다. 그럼 사용할 수 있는
Retrofit 사용 시 알아두면 좋은 것이라는 주제로 만든 영상이다. 별건 아니고, Retrofit의 통신 방식 중 coroutines을 활용했을때 알아두면 좋은 부분을 정리했던 영상이다. 이 글에서 텍스트로 한 번 더 정리하고, 이 글에 도움 될 문서는 아래와 같다. \ 이 글에서 알아볼 내용 Corotuines과 Retrofit2을 함께 사용할 때 스
Kotlin 코루틴에는 suspend 함수를 활용할 수 있습니다. suspend가 추가되면 코루틴에서 동작하도록 강제하게 되는데 단순 강제만은 아닙니다. 코루틴이 종료되면 suspend 함수 역시 종료되어야 합니다.(suspend를 활용한다고 무조건 종료하는 것은 아닌데, 다음에 별도로 작성해보겠다.) 이번 글은 아래의 suspend 함수를 디컴파일해보고,
Callback 이벤트로 받은 데이터를 Coroutines의 Flow를 활용한 방법에 대해서 소개했었다. 최근 Medium에서 Channel을 사용한 방법을 소개한 글이 있어 Channel을 사용하는 방법을 정리해보려고 한다. 여기에서 사용한 샘플은 단순한 테스트를 한 것이고, 네트워크가 포함되어 있지 않다. 다만 단순한 테스트로도 발생하는 문제가 있어 정
kotlin coroutines을 활용한 exception은 매우 쉽다. launch 안에 try/catch 묶어야 함이 중요하다. coroutines의 장점 역시 우리가 항상 사용하는 함수만 이해하면 코루틴을 활용할 수 있다는 점이다. 그렇다면 Flow에서의 예외 처리는 어떻게 할 수 있을까? 가장 기본적으론 아래와 같이 할 수 있다. flow 같진 않지
작성한 GitHubUserSearch 소스를 기반으로 flow를 통해 실시간 데이터 갱신하는 방법에 대해 정리해 본다. 이 방식을 사용하면 데이터를 다시 부르기 위한 형태가 필요치 않고, 실시간 데이터를 지속적으로 받을 수 있는 장점이 생긴다. 여기에서 설명하는 코드는 매뉴얼 인젝션을 사용한 코드이다. 이 글에서 알아볼 내용 coroutines + flow
이 글은 2025 안드로이드 탐구 영역에 나온 문제 중 일부를 해석하는 글의 형태로 작성합니다. 문제 전체를 담지 않고, 중요한 해설을 작성합니다. 정정 24.12.11 해석에 오류가 있으며, 코드 검증 과정에서 오류를 확인하여 수정합니다. 댓글로 오류가 있다고 알려주신 Larry, 송준영님 감사합니다. 안드로이드 탐구 영역 후기 글 어떤 문제일까? 코루틴
이 글은 2025 안드로이드 탐구 영역에 나온 문제 중 flow와 관련한 문제를 해석한 글이다. 안드로이드 탐구 영역 후기 글 무슨 문제인가? 코루틴 flow에 대한 문제가 크게 2문제가 있었다. 이 중 코루틴 영역에 포함한 1개의 문제를 살펴보려 한다. 이 문제는 StateFlow와 flow {}를 복합적으로 사용하는 문제이다. 이 문제에 나오는 Flow