Stream이란 단어의 뜻은 흐름이라는 뜻이죠. Dart에서는 데이터의 흐름을 Stream이라고 합니다. 사실 이렇게만 말하면, 무슨 의미인지 궁금하겠죠.
저번 포스팅에서는 Future와 비동기에 대해서 알아보았습니다. Stream은 이 두 방식과 비슷한듯 비슷하지 않습니다. 가장 쉽게 이해하려면 후에 Firebase를 이용한 데이터 접근 포스팅때 설명드리겠습니다. 지금은 단지 실시간 데이터의 흐름을 Stream으로 나타낸다고 이해하시면 됩니다.
예시를 보며 Stream에 대해서 이해해보겠습니다.
void main() {
var stream = Stream.fromIterable([1, 2, 3]);
}
위 코드는 1, 2, 3을 원소로 하는 배열을 Stream으로 나타낸 것입니다. 이 데이터는 listen을 이용해서 구독할 수 있습니다.
void main() {
var stream = Stream.fromIterable([1, 2, 3]);
stream.listen((doc) {
print(doc);
});
}
>> 1
>> 2
>> 3
실제로 이러한 Stream은 임의의 Stream이 아닌, Firebase에서 제공하는 cloud Firestore 데이터에 접근하는 용도로 사용하게 됩니다.