5.Stream

강재영's avatar
Sep 27, 2024
5.Stream
 

물가에 데이터를 던지는 것

💡
스트림(Stream)**은 Dart에서 비동기적으로 데이터의 흐름을 처리할 수 있는 방식입니다. 데이터를 한꺼번에 처리하는 대신, 스트림은 데이터가 연속적으로 도착할 때마다 그 데이터를 처리하고 반응하는 방식입니다
 
notion image

2.for 루프 방식 (원본수정)

void main() { var chobab = ["새우초밥", "광어초밥", "연어초밥"]; // chobab[0] = chobab[0]+"_간장"; // chobab[1] = chobab[1]+"_간장"; // chobab[2] = chobab[2]+"_간장"; for (var i = 0; i < chobab.length; i++) { chobab[i] = chobab[i] + "_간장"; } print(chobab); }
  • 이 방식은 전통적인 for 루프를 사용하여 리스트의 각 요소를 직접 수정합니다.
  • 장점: 단순한 리스트 수정 작업에는 매우 직관적이고, 빠르게 이해할 수 있습니다.
  • 단점: 이 방식은 리스트의 각 요소를 하나씩 순회하면서 값을 변경하기 때문에 코드가 긴 경우에 가독성이 떨어질 수 있습니다. 또한, 요소의 값을 직접 수정하기 때문에 원본 리스트를 수정하게 됩니다.
 

3.map 함수 방식

void main() { var chobab = ["새우초밥", "광어초밥", "연어초밥"]; //가공 var changeChoba = chobab.map((e) => e + "_간장").toList(); var changeChoba2 = chobab.map((e) { if (e == "새우초밥") { return e; } else { return e + "_간장"; } }).toList(); print(changeChoba); }
 
  • 장점:
    • 원본 리스트를 수정하지 않고 새로운 리스트를 반환합니다. 즉, 데이터의 무결성을 유지할 수 있습니다.
    • 코드가 더 간결하고 함수형 프로그래밍 패러다임을 따릅니다.
    • 원본 데이터를 보존하면서 데이터를 변환하고 싶을 때 유용하다.
  • 단점
    • 초보자에게 어렵다
 

요약: 굳이 이렇게 할 이유

데이터의 불변성 유지: map 함수는 원본 리스트를 변경하지 않고, 새로운 리스트를 반환합니다. 원본 데이터를 수정하지 않음으로써 데이터의 무결성을 유지하고, 오류를 방지할 수 있습니다.
 
Share article

강재영 블로그