Flutter의 Future
Future는 Flutter와 Dart에서 비동기 작업을 처리하기 위한 객체입니다. Future
는 나중에 완료될 작업을 나타내며, 데이터나 값이 준비되지 않은 상태에서 비동기 작업을 수행할 수 있게 해줍니다.
Future의 주요 개념
- 비동기 작업 처리:
Future
는 시간이 오래 걸리는 작업(예: 네트워크 요청, 파일 읽기/쓰기)이 완료될 때까지 기다리지 않고, 작업이 완료되면 그 결과를 처리할 수 있게 도와줍니다.
- 두 가지 결과:
Future
는 두 가지 상태를 가질 수 있습니다. 성공적으로 완료되어 값을 반환하거나, 오류가 발생하여 에러를 반환할 수 있습니다.
Future 사용 예시
간단한 Future
사용 예시는 아래와 같습니다. 2초 후에 데이터를 반환하는 비동기 함수를 정의한 것입니다:
Future의 상태
Future
는 세 가지 상태를 가질 수 있습니다:
- Uncompleted: 비동기 작업이 아직 완료되지 않은 상태입니다.
- Completed with a value: 비동기 작업이 성공적으로 완료되고 값을 반환한 상태입니다.
- Completed with an error: 비동기 작업 중 에러가 발생하여 에러가 반환된 상태입니다.
FutureBuilder와 Future의 사용
Flutter에서는 FutureBuilder
를 사용하여 Future
의 상태를 추적하고, 그에 따라 UI를 업데이트할 수 있습니다.
Future의 주요 메서드
- then(): 비동기 작업이 성공적으로 완료된 후, 그 결과를 처리하는 메서드입니다.
- catchError(): 비동기 작업 중 에러가 발생했을 때 에러를 처리하는 메서드입니다.
- whenComplete(): 작업이 성공 또는 실패에 상관없이 완료되었을 때 호출되는 메서드입니다.
예제: then()을 사용하는 방법
then()
메서드를 사용하여 비동기 작업의 결과를 처리하는 예시는 다음과 같습니다:
결론
Future
는 Flutter에서 비동기 작업을 처리하는 매우 중요한 도구입니다. 네트워크 요청, 파일 입출력 등 시간이 걸리는 작업을 수행할 때 Future
를 사용하여 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속 처리할 수 있습니다.