Flutter에서 Future란 무엇인가?

2023. 5. 22. 10:55·Flutter
반응형

소개

Flutter에서 Future는 비동기적으로 작동하는 데이터 처리를 위한 객체입니다. 이 객체는 비동기적인 작업이 완료되면 반환값을 제공합니다. 이를 통해 UI가 차단되는 것을 방지하고, 앱의 반응성을 유지할 수 있습니다.

Future의 사용

Flutter에서는 비동기 작업을 위해 Future 클래스를 사용합니다. 이 클래스는 비동기 작업을 수행하는 함수를 인자로 받아 Future 객체를 반환합니다. 이 객체는 비동기 작업이 완료되면 반환값을 가집니다.

Future<String> fetchData() async {
  // 비동기 작업을 수행하는 함수
  return "Data fetched successfully!";
}

위의 코드는 String을 반환하는 fetchData() 함수를 정의한 것입니다. 이 함수는 Dart의 async/await 키워드를 사용하여 비동기적으로 작동합니다.

Future의 상태

Future 클래스는 작업의 상태에 따라 다양한 속성을 가집니다. 예를 들어, Future 객체는 작업이 완료되었는지 여부를 알려주는 isCompleted 속성을 가집니다. 작업이 완료되었다면, Future 객체는 결과값을 저장하고, isCompleted 속성은 true를 반환합니다.

Future<String> fetchData() async {
  // 비동기 작업을 수행하는 함수
  return "Data fetched successfully!";
}

void main() async {
  // Future 객체 생성
  Future<String> future = fetchData();

  // Future 객체의 상태 확인
  print("Is future completed? ${future.isCompleted}");

  // Future 객체의 결과값 출력
  print(await future);
}

위의 코드는 fetchData() 함수를 호출한 후, Future 객체를 생성하고, 상태를 확인하는 예시입니다. isCompleted 속성은 false를 반환하고, 결과값은 "Data fetched successfully!"가 출력됩니다.

Future의 에러 처리

비동기 작업이 실패하면, Future 객체는 예외를 발생시킵니다. 이 예외를 처리하기 위해서는 try-catch 블록을 사용할 수 있습니다.

Future<String> fetchData() async {
  throw Exception("Error occurred!");
}

void main() async {
  // Future 객체 생성
  Future<String> future = fetchData();

  // Future 객체의 에러 처리
  try {
    print(await future);
  } catch (e) {
    print(e);
  }
}

위의 코드는 fetchData() 함수에서 예외를 발생시키고, try-catch 블록을 사용하여 예외를 처리하는 예시입니다. 결과값은 "Exception: Error occurred!"가 출력됩니다.

이렇게 Flutter에서는 Future 클래스를 사용하여 비동기 작업을 처리할 수 있습니다. 이를 통해 UI의 반응성을 유지하면서, 데이터 처리 작업을 효율적으로 수행할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Flutter' 카테고리의 다른 글

Flutter의 상태 관리: Provider, Riverpod 및 BLoC 환경 탐색  (0) 2023.08.23
Flutter 애니메이션 : 생동감 있는 인터페이스 구현  (0) 2023.08.22
Flutter에서 const, final, late의 차이  (0) 2023.05.25
Flutter 언어의 자료형  (0) 2023.05.24
Flutter에서 Stateful과 Stateless Widget  (0) 2023.05.23
'Flutter' 카테고리의 다른 글
  • Flutter 애니메이션 : 생동감 있는 인터페이스 구현
  • Flutter에서 const, final, late의 차이
  • Flutter 언어의 자료형
  • Flutter에서 Stateful과 Stateless Widget
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
  • 전체
    오늘
    어제
    • 분류 전체보기 (512) N
      • 상품 추천 (33) N
      • MongoDB (4)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (127)
        • Basic (40)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (48)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 다비즈
  • 공지사항

  • 인기 글

  • 태그

    긴유통기한우유
    리뷰관리
    리뷰이관
    믈레코비타멸균우유
    cv2
    codingtips
    스마트스토어리뷰
    스크립트 실행
    상품 리뷰 크롤링
    rtsp
    Python
    스크립트 실행 순서
    쇼핑몰리뷰
    programming101
    ipcamera
    카페24리뷰이관
    unity
    programmerlife
    appdevelopment
    learntocode
    리스트
    라떼우유
    유니티
    셀레니움
    codingcommunity
    devlife
    C#
    파이썬
    list
    카페24리뷰
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Flutter에서 Future란 무엇인가?
상단으로

티스토리툴바