인프런 커뮤니티 질문&답변

youj0912님의 프로필 이미지
youj0912

작성한 질문수

[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter

리뷰 상세 페이지 퍼블리싱

비동기 처리방식

작성

·

37

·

수정됨

0

1.비동기 처리방식중 future와 stream이 있다고 하는데 도서리뷰앱에서는 비동기 처리방식 중 future을 사용하는건가요? stream을 사용하는건가요?
2.코드에서 await과 async을 사용한것을 봤을때 future방식인지 궁금합니다. 그리고 bloc이 stream 기반이라고 하는데 두가지 방식 다 사용된건지 궁금합니다.

3.widget_test부분에 사용된 await도 비동기 처리방식 중 하나인건가요?

답변 3

0

감사합니다!

0

youj0912님의 프로필 이미지
youj0912
질문자

답변 감사합니다

 

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 키워드를 사용했다는 것만으로도 비동기 함수를 동기로 처리 하고 있구나 라고 이해하시면 되겠습니다.

 

youj0912님의 프로필 이미지
youj0912

작성한 질문수

질문하기