1. dart 비동기 프로그래밍에 대한 개념을 이해하자.
동기성 - 모든 코드가 순차적으로 진행되는 형태 비동기 - 코드가 동시다발적으로 실행, 순착적으로 보장을 할 수 없는 형태
dart 비동기 프로그래밍은 프로그램의 흐름을 중단시키지 않고, 무언가의 완료를 기다리는 동안 다른 작업을 수행할 수 있게 해줍니다. Dart에서는 이를 위해 Future와 Stream이라는 두 가지 주요 개념을 제공합니다.
// 키워드 묶음
// async / await / Future : 1회만 응답을 돌려 받는 경우
// async* / yield / Stream : 지속적으로 응답을 돌려 받아야 하는 경우
Future 타입이 뭘까?
Future 객체는 미래에 어떤 값이나 오류를 반환할 것이라는 약속을 나타냅니다. async 키워드가 붙은 함수 내부에서 await 키워드를 사용하면, Future가 완료될 때까지 실행을 잠시 멈추고 결과가 준비되면 다시 실행을 계속합니다
import 'package:flutter/material.dart';
void main() async {
// dart 비동기 프로그래밍 개념 잡기
// 동기성 : 모든 코드가 순차적으로 진행되는 형태
// 비동기 : 코드가 순차적으로 진행을 보장할 수 없는 형태
// 키워드 Future - async / await - 1회성 응답을 돌려받을 때 사용하는 Future
print('task 1 .....');
// 1. 비동기 함수를 필요에 의해서 동기적으로 변경하는 방법
// await 키워드
var data1 = await fetchData();
print('task 2 ..... ${data1} ');
print('task 3 .....');
}
Future<String> fetchData() {
return Future.delayed(Duration(seconds: 5), () {
print('fetchData() 메서드 호출');
return "2초 Data";
});
}
import 'package:flutter/material.dart';
void main() {
print('task 1 .....');
// 콜백 개념으로 동작 한다.
var data1 = fetchData().then(
(value) {
print("결과값 : ${value}");
return value;
},
);
print('task 2 ..... ${data1} ');
print('task 3 .....');
}
Future<String> fetchData() {
// HTTP 요청 ----------------------> 서버 (2~ 3초 응답)
return Future.delayed(Duration(seconds: 5), () {
print('fetchData() 메서드 호출');
return "2초 Data";
});
}
'Flutter' 카테고리의 다른 글
| Flutter Gesture (0) | 2025.08.19 |
|---|---|
| dart HTTP 요청과 응답 처리 및 파싱 (0) | 2025.08.19 |
| 콜백 함수의 이해 (0) | 2025.08.19 |
| 플러터 기본기 다지기 - MaterialApp의 주요 property와 사용법 (0) | 2025.08.19 |
| 플러터 기본기 다지기 - 기초적인 Flutter 화면을 구성하는 패턴 (0) | 2025.08.19 |