Flutter에서의Future<Response>

Odyssey·2024년 10월 9일

flutter_study

목록 보기
1/9
post-thumbnail

1. Flutter에서 Future<Response> 타입 설명

Flutter에서 Future 타입 사용법

Future란?

Future는 Dart와 Flutter에서 비동기 작업의 결과를 나타내는 객체이다. 시간이 걸리는 작업(예: HTTP 요청, 파일 읽기, 데이터베이스 쿼리 등)이 완료된 이후에 값을 반환할 것을 약속한다. Future는 다음 세 가지 상태를 가질 수 있다:

  • 대기 중 (pending): 작업이 아직 완료되지 않은 상태이다.
  • 완료됨 (completed): 작업이 성공적으로 완료되고 결과 값이 있는 상태이다.
  • 에러 발생 (error): 작업이 실패하여 오류가 발생한 상태이다.

Response란?

Response는 HTTP 요청에 대한 응답을 나타내는 객체이다. HTTP 패키지를 사용할 때 서버로부터 받은 응답 데이터를 캡슐화하는 역할을 한다. Response 객체는 응답의 상태 코드, 헤더, 본문(body) 데이터가 포함되어 있다.

Future 사용 예시

import 'package:http/http.dart' as http;

Future<void> fetchData() async {
  try {
    final response = await http.get(Uri.parse('https://example.com/data'));
  
/*200은 서버가 클라이언트의 요청을 성공적으로 받았음을 의미한다.
주로 GET 요청이나 POST 요청이 성공적으로 완료되었을 때 반환된다.*/ 
    if (response.statusCode == 200)  {
      print('Data fetched successfully: ${response.body}');
    } else {
      print('Failed to load data. Status code: ${response.statusCode}');
    }
  } catch (e) {
    print('An error occurred: $e');
  }
}

요약

Future<Response>는 비동기적으로 HTTP 요청을 수행할 때 사용되며, 작업이 완료될 때까지 기다린 후 Response 객체를 반환한다. await 키워드를 사용하여 작업이 완료될 때까지 대기할 수 있으며, 에러 처리를 위해 try-catch 블록을 사용하는 것이 좋다.

0개의 댓글