영상 후기 - stream

‍bng4535·2023년 3월 21일
0

movie

스트림이란

  • 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소
  • 컬렉션과의 차이?

    • 반복 방식 : 컬렉션은 이터레이터라는 외부 객체를 생성, 스트림은 내부적으로 처리
    • 계산 방식 : 컬렉션은 데이터를 일단 메모리에 모두 불러와 계산, 스트림은 필요한 요소만을 처리
    • 연산 방식 : 컬렉션은 데이터 변경 및 추가 가능, 스트림은 요소를 변환하거나 걸러내는 중간 연산과, 최종 연산의 두 가지 연산만 가능

스트림 구조

  • 생성 : 컬렉션, 배열, 파일 등으로 부터 만들어 짐
  • 가공 : 중간 연산자를 lazy한 연산을 수행(최종 연산 수행 전까지 연산이 반영되지 않음)
  • 소비 : 최종 결과를 만들기 위한 연산, stream이 소비된 것으로 간주

스트림의 장단점

  • 장점

    • 가독성
    • 코드의 변경이 쉽다(메서드의 순서만 바꾸면 됨)
    • 병렬처리를 간단하게 구현할 수 있다(Parallel stream)
  • 단점

    • 높은 computing 비용 (스트림 객체 생성 오버헤드, 중간 처리 등)

요즘은 유지보수에 투자하는 비용이 하드웨어 비용보다 높으므로 스트림을 잘 사용하면 효율을 얻을 수 있다.

profile
공부 기록

0개의 댓글