작성
·
37
·
수정됨
답변 3
0
0
0
Q : 비동기 처리방식중 future와 stream이 있다고 하는데 도서리뷰앱에서는 비동기 처리방식 중 future을 사용하는건가요? stream을 사용하는건가요?
A : 비동기 처리 방식에 두가지가 있지만 두가 성격은 다릅니다. 지속적인 변화를 감지하여 처리하는 방식이 stream이라 할 수 있고 단발적인 것은 future라고 보시면 되겠습니다. 도서리뷰앱에서는 bloc이라는 상태관리를 사용하고 있기때문에 bloc에서 상태변경에 따른 변경을 자동으로 처리 해주고 있어서 별도의 stream을 만들어 사용하지 않았습니다. 단지 한 곳에서 stream을 이용한 것이 있는데 그것은 firebase sns 로그인 상태 변경에 따른 변경사항을 처리하기 위해서 사용했습니다.
정리하자면
도서리뷰앱에서는 future로 비동기 처리를 주를 이루고 있고 stream은 sns 로그인 처리 부분에서 사용되었습니다.
Q : 코드에서 await과 async을 사용한것을 봤을때 future방식인지 궁금합니다. 그리고 bloc이 stream 기반이라고 하는데 두가지 방식 다 사용된건지 궁금합니다.
A : Future를 사용할때는 async로 만들고 사용하는쪽에서 동기 방식으로 만드려고 하면 await을 사용하게 됩니다. Stream의 경우 async* 을 사용하고 사용하는 곳에서 구독하기 위해서는 stream.listen의 함수를 이용하게 됩니다.
Bloc이 stream 기반이지만 어떻게 사용하느냐에 따라 단건으로 처리 할 수도 있고 지속적인 처리도 가능합니다.
Q : widget_test부분에 사용된 await도 비동기 처리방식 중 하나인건가요?
A : 네 맞습니다. await 키워드를 사용했다는 것만으로도 비동기 함수를 동기로 처리 하고 있구나 라고 이해하시면 되겠습니다.