0Pricing
Dart Academy · 강의

Future.wait와 병렬 작업

여러 Future를 동시에 실행합니다

Future.wait와 병렬 작업은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

하나씩 await하면 느립니다

Future를 순서대로 await하면 각각이 이전 작업이 끝날 때까지 기다립니다. 1초가 걸리는 호출 세 개는 총 3초가 걸립니다.

함께 시작하기

서로 독립적인 비동기 호출을 먼저 시작한 다음 await하세요. 호출이 동시에 진행되므로 전체 시간은 합계가 아니라 가장 느린 작업의 시간에 가까워집니다.

Future.wait 만나기

Future.wait는 Future 리스트를 받아 모든 작업이 끝나면 완료되는 하나의 Future를 반환합니다.

final results = await Future.wait([a(), b(), c()]);

결과 순서는 유지됩니다

Future.wait는 어느 작업이 먼저 끝났는지와 관계없이 입력 Future와 같은 순서로 결과 리스트를 제공합니다.

final list = await Future.wait([one(), two()]);
print(list[0]); // result of one()

실제로 절약되는 시간

1초가 걸리는 Future 세 개를 병렬로 실행하면 약 1초 만에 함께 완료됩니다. Future.wait가 대기 시간을 겹쳐서 처리하기 때문입니다.

하나가 실패하면

기본적으로 Future 중 하나라도 오류가 발생하면 Future.wait는 다른 작업이 아직 실행 중이어도 즉시 해당 오류와 함께 완료됩니다.

eagerError로 계속 진행하기

eagerError: false를 전달하면 Future.wait는 처음 발견한 오류를 보고하기 전에 모든 Future가 끝날 때까지 기다립니다.

await Future.wait(tasks, eagerError: false);

Future.any로 경쟁시키기

가장 빠른 결과 하나만 필요하신가요? Future.any는 리스트의 첫 번째 Future가 성공하는 즉시 완료됩니다.

final fastest = await Future.any([mirrorA(), mirrorB()]);

리스트 만들기

일반적인 패턴은 입력에 map을 적용해 Future 리스트를 만든 다음, 그 리스트를 바로 Future.wait에 전달하는 것입니다.

await Future.wait(ids.map(fetchUser));

동시 실행이지 병렬 스레드는 아닙니다

이는 하나의 isolate에서 이루어지는 동시성입니다. 이벤트 루프가 대기 작업을 번갈아 처리합니다. CPU를 많이 사용하는 작업에는 isolate를 사용해야 합니다.

각 방법을 사용하는 경우

모든 결과가 필요할 때는 Future.wait를 사용하고, 가장 먼저 도착한 결과 하나만 필요할 때는 Future.any를 사용하세요. ⚖️

빠른 확인

Future를 함께 실행하는 방법을 빠르게 확인해 보세요.

복습: 병렬 Future

모든 결과에는 Future.wait를 사용하고, 가장 빠른 결과에는 Future.any를 사용해 비동기 작업을 겹쳐 실행하는 방법과 오류의 동작 방식을 배웠습니다. 🏁

자주 묻는 질문

“Future.wait와 병렬 작업” 강의는 무료인가요?

네 — “Future.wait와 병렬 작업” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Future.wait와 병렬 작업”에서 뭘 배우나요?

여러 Future를 동시에 실행합니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Dart Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“Future.wait와 병렬 작업” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 이벤트 루프와 마이크로태스크
  2. Future 만들고 기다리기
  3. 비동기 코드의 오류 처리
  4. Future.wait와 병렬 작업
← Dart Academy(으)로 돌아가기