이 글은 Kotlin Coroutines : Deep Dive 책 내용을 다루고 있습니다. 들어가기 전에 공식문서나 책을 읽다보면 이런 얘기가 많이 나온다. List, Set 과 같은 컬렉션은 Hot, Sequence 와 자바의 Stream 은 Cold 이다. Channel 은 Hot 이지만 Flow, RxJava 스트림(observable, Single) 은 Cold 이다. 도대체 뭐가 뜨겁고 뭐가 차가운걸까..? 오늘은 데이터 소스의 두 가지 종류 Hot 데이터 스트림과 Cold 데이터 스트림의 차이를 확실히 이해해보자. Hot vs Cold Hot 데이터 스트림은 열정적이라 데이터를 소비하는 것과 무관하게 원소를 생성한다. Cold 데이터 스트림은 게을러서 요청이 있을 때만 작업을 수행하며 아무것도..
kotlin
이 글은 Kotlin Coroutines : Deep Dive 책 내용을 다루고 있습니다. 자동차를 탈 때 내부 구조를 알 필요는 없다. 다만 이해도를 높여줄 수 있다. 한 번에 이해하기에 내용이 어려워서 그냥 이런게 있구나 하고 가볍게 넘어가려고 한다. 들어가기 전에 이 책에서는 코루틴 실제 구현에 대해 다음과 같이 중요한 점을 얘기한다. 중단 함수(suspend function)가 시작할 때, 호출되었을 때, 상태를 가진다는 점에서 상태 머신과 비슷하다. Continuation 객체는 상태를 나타내는 숫자와 로컬 데이터를 가진다. 함수의 Continuation 객체가 이 함수를 부르는 다른 함수의 Continuation 객체를 장식(decorate)한다. 그 결과 모든 Continuation 객체는 ..