[10분 테코톡] 차리의 Stream

서빈·2023년 3월 24일

movie

목차

  1. 스트림이란
  2. 스트림 구조
  3. 스트림의 장단점

스트림

  • 위키피디아에서는 스트림을 A Sequence of Data elements made available over time. 이라고 표현합니다.
  • 캠브릿지 사전에서는 일반 명사로 A continuous flow of things or people을 의미 한다고 합니다.
  • 스트림은 어떠한 요소들이 모인 하나의 고정된 집합이라고 생각하기보다 flow 즉 데이터 흐름이라는 것에 초점을 맞춰서 생각해 보면 스트림을 이해하기 편하다.
  • 스트림을 크게 세 파트로 분류하면 생성, 가공, 소비로 분류

생성

  • 리스트, 맵과 같은 컬렉션으로부터 생성 가능
  • 이외에도 배열로부터 생성 가능하고 또는 파일로부터 생성할 수도 있다.

가공

  • 중간연산자는 필터, 맵, 리밋등 소스로부터 얻어낸 값들을 이제 입맛대로 가공하는 역할을 한다.
  • 이런 중간연산자의 결과로는 새로운 스트림을 반환하는데 이는 곧 lazy evaluation을 할 수 있도록 만들어 준다.
  • 스트림에서 lazy evaluation은 최종 연산이 들어오기 전까지 중간 연산은 실제로 실행되지 않음을 의미한다.

소비

  • 최종 연산자는 결과를 생성하거나 사이드 이펙트를 만들기 위해서 사용된다.
  • 주의점 : 최종연산자가 수행되고 나면 스트림 파이프라인은 소비된 것으로 간주된다. 즉, 다시 사용하려면 새로운 스트림을 만들어야한다.

스트림 장점

  • 가독성이 좋다
  • 유연성
  • 병렬처리를 간단하게 해결할 수 있다.

스트림 단점

  • 컴퓨팅 비용
  • 인지에 대한 비용
profile
ㅎㅇ / ㅂㅇ

0개의 댓글