본문 바로가기

전체 글55

키링 개인정보 처리방침 키링 개인정보 처리방침 2023. 7. 23.
키링 서비스 이용약관 서비스 이용약관 2023. 7. 23.
(Coroutine) 7. Flow Basics 1. Data Stream 코루틴에서 Flow는 하나의 단일 값만 반환할 수 있는 suspend function과는 달리 여러 값을 순차적으로 내보낼 수 있는 즉, 데이터 스트림을 구현하기 위한 라이브러리이다. 예를 들어, 데이터베이스의 업데이트 내용들을 Flow를 통해 라이브하게 얻을 수 있다. 여기서 설명하는 데이터 스트림은 크게 3가지 항목으로 구성된다. Producer (생산자) Producer는 데이터 스트림에 추가되는 데이터를 생산하는 역할을 한다. Flow를 이용해 비동기적으로 데이터를 생성할 수 있다. Intermediary (중개자) 데이터 스트림을 통해 내보내는 각각의 값이나 스트림 자체를 수정하는 역할을 한다. Optional하기 때문에 반드시 필요한 것은 아니다. Consumer (.. 2022. 11. 2.
(Coroutine) 6. CoroutineExceptionHandler, SupervisorJob 1. CEH (Coroutine Exception Handler) GlobalScope와 CoroutineScope를 통해 runBlocking을 사용하지 않고도 별도의 Scope를 만들 수 있게 되었다. CoroutineScope와 함께 이번에 살펴볼 CEH를 이용하면 더욱 체계적으로 코루틴에서의 예외 처리를 할 수 있다. 아래 예시를 살펴보자. suspend fun printRandom1() { delay(1000L) println(Random.nextInt(0, 500)) } suspend fun printRandom2() { delay(500L) throw ArithmeticException() } val ceh = CoroutineExceptionHandler { _, throwable -> p.. 2022. 11. 2.