비동기 프로그래밍이란?
작업이 완료될 때까지 기다리지 않고, 결과가 준비되면 그때 처리하는 방식이다.
방식 | 설명 |
동기 | 주문 후 커피 나올 때까지 가만히 기다림 |
비동기 | 주문 후 진동벨 받은 후, 자리에서 다른 행동을 하며 기다리다 진동벨이 울리면 커피를 받음 |
flutter를 이용하면 파일 다운로드, 웹 요청, 파일 저장 및 불러오기 작업 등은 시간이 오래 걸린다. 이걸 기다리기만 하면 앱이 멈춘 것처럼 보이기 때문에 다른 작업을 먼저 할 수 있도록 비동기를 사용한다.
이 비동기 프로그래밍을 위해서는 Future함수를 이용해야 하는데
이 함수는 3초 후에 문자열을 리턴한다는 의미를 가지고있다.
실행은 즉시 시작되지만, 결과는 3초 후에 제공된다는 것을 의미한다.
여기서도 두가지 방법이 있다.
첫째로 async/awiat 를 이용하여 비동기를 동기 코드처럼 보이게 만드는 방법이다.
실행하게 되면 카페 도착, 커피 주문 결과값이 나오고 3초후에 커피도착, 책읽기가 출력된다.
await를 이용하려면 async를 붙여야한다. await 키워드는 나중에 올 데이터를 기다렸다 작업하겠다는 키워드이다. await를 사용하게 되면 Future라는 진동벨을 받아 기다리겠다는 의미를 가지게 된다.
그 다음은 then을 이용하는 방식이 있다.
then() 은 콜백 방식으로 Future함수에서 입력해 놓은것을 다른걸 실행하면서 나중에 실행한다. 결과 값에 보이는 것 처럼 진동벨을 받아 책읽기를 하다가 3초후에 커피도착 값을 받는다.
이렇게 비동기 방식을 사용하면 Future함수를 이용해서 flutter는 다른 작업을 하며 결과를 기다릴 수 있게 되는 것이다.
오늘 배운 비동기 방식은 나중에 flutter 개발 단계에서 필수적으로 들어가지 않을까라는 생각이 든다.
어떤 구조로 이뤄져 있는지 다시한번 확인하고 나중에 잘 복습해보자.