await for로 수신하기
이벤트가 도착하는 대로 읽습니다
await for로 수신하기은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Stream이란 무엇인가요?
Stream은 모든 값이 한 번에 도착하는 것이 아니라 시간에 따라 도착하는 값의 연속입니다. 하나의 결과만 전달하는 Future와 달리 여러 결과를 전달할 수 있는 Future라고 생각하면 됩니다.
스트림과 Future 비교
Future는 나중에 값 하나를 제공합니다. Stream은 이벤트가 끝났다는 신호를 보낼 때까지 이벤트 전체를 하나씩 차례로 전달합니다. 🌊
await for 만나기
await for 반복문은 스트림에서 이벤트가 도착하는 대로 읽습니다. 반복문이 한 번 실행될 때마다 스트림이 내보내는 다음 값을 받습니다.
await for (final value in stream) {
print(value);
}async 안에서 실행해야 합니다
await for는 이벤트를 기다리며 일시 중지하므로 async로 표시된 함수 안에서만 사용할 수 있습니다. 함수는 다음 값이 준비될 때까지 일시 중지됩니다.
Future<void> show(Stream<int> s) async {
await for (final n in s) print(n);
}읽을 스트림 만들기
Stream.fromIterable을 사용하면 간단한 스트림을 만들 수 있습니다. 목록의 각 요소를 순서대로 내보내므로 await for를 시험해 보기에 적합합니다.
final stream = Stream.fromIterable([1, 2, 3]);이벤트 반복하기
이 스트림을 await for와 함께 사용하면 내보낸 값마다 반복문이 한 번씩 실행됩니다. 여기서는 1, 2, 3을 차례로 출력합니다.
await for (final n in Stream.fromIterable([1, 2, 3])) {
print(n);
}이벤트 사이에서 기다리기
실제 스트림은 이벤트 사이에 잠시 멈추는 경우가 많습니다. await for를 사용하면 코드가 빈틈 동안 기다렸다가 다음 값이 도착하는 즉시 다시 실행됩니다. ⏳
final ticks = Stream.periodic(
Duration(seconds: 1), (i) => i);반복문은 자연스럽게 끝납니다
스트림이 이벤트 전송을 마치면 완료 신호를 보냅니다. await for 반복문은 자동으로 종료되고 함수는 그다음 줄부터 계속 실행됩니다.
await for (final n in finiteStream) print(n);
print('Stream finished');오류가 반복문에 전달됩니다
스트림이 오류를 내보내면 await for 줄에서 바로 오류가 발생합니다. 반복문을 try/catch로 감싸면 오류를 적절히 처리할 수 있습니다.
try {
await for (final n in maybeFails) print(n);
} catch (e) {
print('Caught: $e');
}break는 수신을 취소합니다
await for 안에서 break를 사용하면 반복문이 중지되고 스트림 구독도 조용히 취소됩니다. 이후 스트림이 보내는 이벤트는 더 이상 받지 않습니다.
await for (final n in stream) {
if (n > 100) break;
}한 번에 하나의 수신기만
await for 반복문은 단일 구독 스트림을 구독합니다. 이 스트림은 한 번만 읽을 수 있으므로 두 번째 반복문으로 읽으면 오류가 발생합니다.
빠른 확인
await for에 대해 배운 내용을 확인해 보세요.
복습
Stream은 시간에 따라 여러 값을 전달하며, await for는 async 함수 안에서 완료될 때까지 그 값을 하나씩 읽는다는 것을 배웠습니다. 잘하셨습니다! 🎉
자주 묻는 질문
“await for로 수신하기” 강의는 무료인가요?
네 — “await for로 수신하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“await for로 수신하기”에서 뭘 배우나요?
이벤트가 도착하는 대로 읽습니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Dart Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“await for로 수신하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- await for로 수신하기
- 단일 구독 스트림과 브로드캐스트 스트림
- 스트림 변환: map, where, take
- async*로 스트림 만들기