상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 다트의 async 패턴은 어떻게 구성되나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
다트(Dart)의 async 패턴은 비동기 프로그래밍을 지원하기 위해 설계된 구조로, 주로 `F<a href='https://sangseek.com/sangseeks/uture/ko'>uture</a>`와 `Stream`을 사용하여 비동기 작업을 처리합니다. 이러한 패턴은 UI 응답성을 유지하면서도 네트워크 요청, 파일 I/O, 데이터베이스 쿼리 등 시간이 걸리는 작업을 효율적으로 수행할 수 있게 해줍니다. 1. Future `Future`는 비동기 작업의 결과를 나타내는 객체입니다. `Future`는 두 가지 상태를 가질 수 있습니다: 완료(completed) 또는 실패(failed). 비동기 작업이 완료되면 `Future`는 결과 값을 반환하거나 오류를 발생시킵니다. Future 생성 `Future`는 다음과 같이 생성할 수 있습니다: ```dart Future<String> fetchData() { return Future.delayed(Duration(seconds: 2), () { return '데이터 로드 완료'; }); } ``` 위의 예제에서 `fetchData` 함수는 2초 후에 <a href='https://sangseek.com/sangseeks/문자열/ko'>문자열</a>을 반환하는 `Future`를 생성합니다. Future 사용 `Future`의 결과를 사용하려면 `then`, `catchError`, `<a href='https://sangseek.com/sangseeks/whenComplete/ko'>whenComplete</a>` 메서드를 사용할 수 있습니다: ```dart void main() { fetchData().then((data) { print(data); // '데이터 로드 완료' }).catchError((error) { print('오류 발생: $error'); }).whenComplete(() { print('작업 완료'); }); } ``` async/await Dart에서는 `async`와 `await` 키워드를 사용하여 비동기 코드를 더 간결하고 읽기 쉽게 작성할 수 있습니다. `async` 키워드가 붙은 함수는 항상 `Future`를 반환하며, `await` 키워드는 `Future`가 완료될 때까지 기다립니다. ```dart Future<void> main() async { try { String data = await fetchData(); print(data); // '데이터 로드 완료' } catch (error) { print('오류 발생: $error'); } finally { print('작업 완료'); } } ``` 2. Stream `Stream`은 비동기 데이터의 시퀀스를 처리하는 데 사용됩니다. 예를 들어, 데이터가 지속적으로 발생하는 경우(예: 사용자 입력, 웹<a href='https://sangseek.com/sangseeks/소켓/ko'>소켓</a>, 파일 읽기 등) `Stream`을 사용할 수 있습니다. Stream 생성 `Stream`은 다음과 같이 생성할 수 있습니다: ```dart Stream<int> countStream() async* { for (int i = 1; i <= 5; i++) { await Future.delayed(Duration(seconds: 1)); yield i; // 값을 방출 } } ``` 위의 예제에서 `countStream` 함수는 <a href='https://sangseek.com/sangseeks/1초/ko'>1초</a> 간격으로 1부터 5까지의 숫자를 방출하는 `Stream`을 생성합니다. Stream 사용 `Stream`의 값을 사용하려면 `listen` 메서드를 사용합니다: ```dart void main() { countStream().listen((value) { print(value); // 1, 2, 3, 4, 5 }, onDone: () { print('모든 값이 방출되었습니다.'); }); } ``` 3. 결론 Dart의 async 패턴은 비동기 프로그래밍을 쉽게 구현할 수 있도록 돕는 강력한 도구입니다. `Future`와 `Stream`을 통해 비동기 작업을 처리하고, `async`와 `await`를 사용하여 코드의 가독성을 높일 수 있습니다. 이러한 패턴은 특히 Flutter와 같은 UI 프레임워크에서 사용자 경험을 향상시키는 데 중요한 역할을 합니다. 비동기 프로그래밍을 잘 활용하면, 앱의 성능과 응답성을 크게 개선할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기