[Flutter] 플러터 Stream 맛보기

오늘도 알고보자·2022년 2월 18일
0

StreamBuilder

  • StreamBuilder를 알아보기전에 FutureBuilder에 대해서 되새김질 해보고가자.
  • FutureBuilder는 비동기 처리를 진행하며 결과에 따라 표시할 Widget을 반환한다.
  • StreamBulder는 스트림 작업을 진행하며, Stream을 통해 전달되는 데이터가 변경될때 마다 UI를 다시 빌드한다.
  • 모두 동일한 동작을 한다, 설명을 다르게썼지만 결국 각각의 개체에서 변경사항을 수신하고 결과에 따라 새 빌드를 트리거한다.

그럼 Stream은 어떤건데?

  • Stream은 데이터나 이벤트가 들어오는 통로이다.
  • 데이터가 바뀌는걸 (Listen) 보고있다가 그에맞춰 적절한 처리를 한다.
  • 데이터 처리에있어서 어느 타이밍에 데이터가 들어올지 모르기때문에 stream은 이처럼 비동기 작업을 할때 쓰인다. 데이터를 만드는 곳과 소비하는 곳을 따로둬서 이 문제를 해결한다.
  • Stream에서 데이터의 추가나 변경이 일어나면 관찰하던데서(Listen) 처리한다.
  • Stream은 기본적으로 싱글 서브스크립션 이다→ 싱글서브스크립션은 한군데서만 리슨할수있다.

결론 FutureBuilder와 StreamBuilder의 차이점

  • 둘다 코드를 만났을때 해당 코드가 끝나면 error 나 data를 받는것을 동일하다.
  • Future는 단 한번 데이터나 에러를 받는거여서 일회성 응답이다.
  • Stream은 Listener가 있어서 계속 관찰을 한다.하지만 Stream은 하나의 리스너만 받을수있어 1:1 관계이다. 여러 Stream을 이용하고 싶다면 BroadcastStream 을 사용하자.

라고하는데 말이 너무 어렵다;;;;

0개의 댓글