Stream이란 무엇일까요?
Stream은 데이터 흐름을 추상화하는 Dart의 강력한 기능입니다. 시간이 지남에 따라 순차적으로 발생하는 데이터를 처리하는 데 유용합니다. 예를 들어, 센서 데이터, 네트워크 응답, 사용자 입력 등을 처리하는 데 사용할 수 있습니다.
Stream 예시: 숫자 카운트
다음 코드는 countStream이라는 Stream 함수를 보여줍니다. 이 함수는 1부터 max까지 숫자를 1초 간격으로 순차적으로 출력합니다.
Stream<int> countStream(int max) async* {
for (int i = 1; i <= max; i++) {
await sleepAsync(1.seconds);
yield i;
}
}
코드 설명:
- async*: 비동기 Stream 함수임을 나타냅니다.
- yield: Stream에 값을 전달합니다.
- sleepAsync(1.seconds): 1초 동안 일시 중지합니다.
Stream 사용
다음 코드는 countStream 함수를 사용하여 1부터 5까지 숫자를 출력하는 예시입니다.
void main() async {
final stream = countStream(5);
stream.listen((number) {
print(number);
});
}
코드 설명:
- listen: Stream을 구독하고 데이터가 도착할 때마다 callback 함수를 실행합니다.
- callback: Stream에서 전달된 데이터를 처리합니다.
Stream의 장점
- 데이터 흐름을 추상화하여 코드를 더 간결하고 이해하기 쉽게 만듭니다.
- 비동기 작업을 처리하는 데 유용합니다.
- 여러 컴포넌트 간에 데이터를 쉽게 공유할 수 있습니다.
'new' 카테고리의 다른 글
Flutter StreamBuilder를 활용한 간단한 타이머 만들기 (0) | 2024.03.18 |
---|---|
StreamController를 이용한 데이터 관찰 예시 (0) | 2024.03.18 |
CustomScrollView: 강력한 스크롤 효과 구현 (0) | 2024.03.11 |
Flutter에서 SingleChildScrollView 사용하여 오버플로 문제 해결하기 (0) | 2024.03.11 |
Flutter의 BottomNavigationBar 사용 시 발생하는 rebuild 문제, IndexedStack으로 해결 (0) | 2024.03.11 |