ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Stream 그게 뭔데.... Flow 그거 어떻게 하는건데?
    Kotlin🖥 2022. 10. 24. 22:53

    Hot Stream과 Cold Stream을 정리해보고 SharedFlow와 StateFlow의 차이를 알아보자!

    Flow에는 Hot Stream과 Cold Stream이라는 개념이 있습니다.

     

    Cold Stream

    얘는 정이 없다.

    이름부터 차갑다.

    그래서 하나의 소비자에게만 값을 보낸다.

    생성된 이후에 누군가 소비하기 시작해야 데이터를 발행하기 시작한다.

     

    • 하나의 소비자에게만 값을 보냄
    • 생성된 이후에 누군가 소비하기 시작해야 데이터를 발행

     

    Hot Stream 

    얘는 이름부터 뜨겁다.

    열정이 넘친다.

    그래서 하나 이상의 소비자에게 열심히 값을 보낸다.

    데이터가 발행이 시작되면 모든 소비자에게 같은 데이터를 보내고, 소비자가 없어도 열심히 데이터를 발행한다.

    State Flow, Shared Flow가 Hot Stream이다.

     

    • 하나 이상의 소비자에게 값을 전달
    • 데이터 발행이 시작되는 순간 모든 소비자에게 같은 값을 전달
    • 소비자가 없어도 데이터 발행

     

    • StateFlow
      • StateFlow는 Hot Stream의 특징을 갖는다.
      • 밑에 설명할 SharedFlow를 상속받아 만들어졌다.
      • 초기값이 필요하다.
      • 같은 값은 중복으로 내보내지 않는다.
    • SharedFlow
      • 마찬가지로 Hot Stream의 특징을 갖는다.
      • 초기값이 필요 없다.
      • replay, extraBufferCapcity, onBufferOverflow 등의 인자를 설정할 수 있다.
        • replay
          • 새로운 구독자에게 언제까지의 이전.
        • extraBufferCapcity
          • emit 한 데이터를 버퍼에 유지할지를 설정한다.
        • onBufferOverflow
          • 버퍼가 찼을 때 어떻게 할지 설정한다.

     

    여기까지 Flow의 기본적인 내용이다.

    공식문서에도 나와있고, 자료도 많지만

    면접에서 물어보면 당황할 수 있으니 공부해 놓자!

    'Kotlin🖥' 카테고리의 다른 글

    Kotlin Collection Sort Null 원소 끝으로 보내기  (0) 2023.03.17
Designed by Tistory.