본문 바로가기
버킷리스트/앱 만들기

오공완(with 코드팩토리의 플러터 프로그래밍) #3 다트 비동기 프로그래밍(동기, 비동기, Future, async, await, Stream)

by 또또도전 2024. 7. 15.
반응형

// 이곳에 쓴 내용은 앱 만들기라는 버킷리스트를 달성하기 위해 플러터를 공부하면서 정리하고 있는 내용입니다.

플러터에 대해 아는 것이 거의 없기 때문에 정리하면서 오류가 있을 수 있습니다.

오류를 발견하신 분은 댓글 남겨 주시면 감사하겠습니다.

 

  동기, 비동기

 

동기: 요청하고 나서 답이 올 때까지 기다리기

비동기: 요청 응답이 오지 않았음에도 다음 코드 진행

 

  Future

 

 

순서대로 실행하지 않고, 3초 기다리라는 명령어 이후에 나와 있는 코드부터 실행하고 3초 후에 값이 나오는 걸 볼 수 있다.

 

  async, await

 

이 녀석들을 이용하면 비동기 프로그램밍 특징을 그대로 유지하며 코드가 작성된 순서대로 실행함.

 

 

아래처럼 main함수에 async와 await을 넣으면 각 함수별로 실행이 종료된 다음에 다음 코드를 실행하게 됨.

 

아래처럼 결과값을 받을 수 있다. 중간에 void를 int로 바꾸는 것에 주의

 

  Stream

 

지속적으로 값을 반환받을 때는 Stream을 사용. 개념은 이해하겠으나 아래 코드는 이해는 안 된다.

 

 

  브로드캐스트 스트림

 

여러 번 listen()함수를 실행하고 싶을 때 아래처럼 사용하면 된다고 하는데, 역시나 어떤 작동 원리일까?

 

  함수로 Stream 반환하기

 

스트림에서는 'async*'로 함수 선언, 'yield'로 값 반환

1초 후에 값들이 하나씩 출력되게 된다.

 

2, 3장은 중요하니 꼭 이해를 하고 넘어가야 한다고 한다.. 난 2, 3번 읽고 반복해도 이해를 못 할 것임으로 다음 장으로 Go Go~~^^

반응형