
목차
- 스트림이란
- 스트림 구조
- 스트림의 장단점
스트림
- 위키피디아에서는 스트림을 A Sequence of Data elements made available over time. 이라고 표현합니다.
- 캠브릿지 사전에서는 일반 명사로 A continuous flow of things or people을 의미 한다고 합니다.
- 스트림은 어떠한 요소들이 모인 하나의 고정된 집합이라고 생각하기보다 flow 즉 데이터 흐름이라는 것에 초점을 맞춰서 생각해 보면 스트림을 이해하기 편하다.
- 스트림을 크게 세 파트로 분류하면 생성, 가공, 소비로 분류
생성
- 리스트, 맵과 같은 컬렉션으로부터 생성 가능
- 이외에도 배열로부터 생성 가능하고 또는 파일로부터 생성할 수도 있다.
가공
- 중간연산자는 필터, 맵, 리밋등 소스로부터 얻어낸 값들을 이제 입맛대로 가공하는 역할을 한다.
- 이런 중간연산자의 결과로는 새로운 스트림을 반환하는데 이는 곧 lazy evaluation을 할 수 있도록 만들어 준다.
- 스트림에서 lazy evaluation은 최종 연산이 들어오기 전까지 중간 연산은 실제로 실행되지 않음을 의미한다.
소비
- 최종 연산자는 결과를 생성하거나 사이드 이펙트를 만들기 위해서 사용된다.
- 주의점 : 최종연산자가 수행되고 나면 스트림 파이프라인은 소비된 것으로 간주된다. 즉, 다시 사용하려면 새로운 스트림을 만들어야한다.
스트림 장점
- 가독성이 좋다
- 유연성
- 병렬처리를 간단하게 해결할 수 있다.
스트림 단점