본문 바로가기
Kotlin

[Kotlin] Flow에서 ColdStream과 HotStream의 차이

by JongSeok 2023. 6. 3.

Cold Stream

  • 하나의 소비자(Consumer)에게 데이터를 발행합니다. (UniCast)
  • 소비자가 소비를 시작할 때 데이터를 생성합니다.
  • 모든 데이터는 스트림 내부에서 생성됩니다.

Hot Stream

  • 여러개의 소비자에게 데이터를 발행합니다. (MultiCast)
  • 소비자가 데이터에 접근하지 않더라도 계속 데이터를 발행합니다.
  • 모든 데이터는 스트림 외부에서 생성됩니다.

라고 정리할 수 있을 것 같습니다.

 

예를 들자면, Cold Stream은 'CD 플레이어', Hot Stream은 '라디오 방송'에 비유할 수 있습니다.

 

CD 플레이어는 소비자(사용자) 한 명이 사용하고, 소비자가 플레이어를 중단하면 CD는 멈추고 더 이상 재생되지 않습니다. 그리고 1시간 뒤, 하루 뒤에도 플레이어를 재생하는 시점에 관계없이 동일한 데이터를 제공합니다.

 

그에 비해, 라디오 방송은 여러 명의 소비자(방송 청취자)가 이용하고, 소비자가 방송을 청취하지 않더라도 라디오는 중단되지 않고 계속해서 방송됩니다. 이후에 소비자가 다시 라디오를 청취하는 시점에 따라 방송에서 제공하는 내용은 달라지게 됩니다.

 

728x90
반응형

'Kotlin' 카테고리의 다른 글

[Kotlin] 배열(Array)과 리스트(List) + ArrayList  (0) 2022.12.26
[Kotlin] for, while 반복문  (0) 2022.12.23
[Kotlin] readLine()과 자료형 변환  (0) 2022.12.20