Kotlin

[Kotlin] Cold Stream(flow), Hot Stream(flow) 차이점

Darane 2021. 10. 5. 09:28

 

Flow를 사용하다 보면 Cold Stream, Hot Stream 이란 용어를 들어볼 수 있습니다.

Cold Stream, Hot Stream의 차이점을 정리하겠습니다.

Cold Stream

  • 하나의 소비자(Consumer)에게 값을 보냅니다.
  • 생성된 이후에 누군가 소비하기 시작하면 데이터를 발행합니다.

예를 들어 상태가 변하지 않는 값을 읽을 때

데이터베이스를 읽거나 URL을 통해서 서버 값을 읽는 경우 Cold Stream으로 구현할 수 있습니다.

 

Hot Stream

  • 하나 이상의 소비자(Consumer)에게 값을 보낼 수 있습니다.
  • 데이터 발행이 시작된 이후 부터 모든 소비자에게 같은 데이터를 발행하고 구독자가 없는 경우에도 데이터를 발행합니다.

예를 들어 상태가 변하는 값을 읽을 때 네트워크 상태 정보 값을 얻어올 때 Hot Stream을 사용할 수 있습니다.

반응형