반응형
코루틴을 알아가기 시작했고 Scope와 flow, channel 등 여러 API를 알아오셨을겁니다. 많은 포스팅에서 보셨듯이 flow는 cold stream, channel은 hot stream이라는 것을 알고 계실겁니다.
Stream이란?
[사전적 용어]
- 줄줄[계속] 흐르다
- 줄을 지어 이어지다
라는 사전적 용어를 가집니다. 흔히 안드로이드에서 비동기작업을 진행할 때 어떤 방식의 데이터 흐름을 만들지 선택하게 됩니다.
Cold Stream
- 하나의 소비자(Consumer)에게 값을 보낸다
- 생성된 이후에 누군가 소비하기 시작하면 데이터를 발행한다
- 예) 상태가 변하지 않는 값을 읽을 때(DB를 읽거나 URL을 통해 서버 값을 읽는 경우)
Hot Stream
- 하나 이상의 소비자(Consumer)에게 값을 보낸다
- 데이터 발행이 시작된 이후 부터 모든 소비자에게 같은 데이터를 발행하고 구독자가 없는 경우에도 데이터를 발행한다
- 예) 상태가 변하는 값을 읽을 때(라디오에서 방출하는 방송을 청취할 때)
반응형