[JAVA] Stream API에 대해 알아보자

주재민·2021년 11월 16일
0

JAVA SE8 이전까지의 많은 양의 데이터를 담은 배열 or 컬렉션을 어떻게 핸들링 했나?

  • 저장된 대량의 데이터에 접근하기 위해 반복문 or 반복자(iterator)를 사용
  • 그랬을 때, 새로운 코드를 매번 작성해야 함
  • 단점
    1. 가독성이 떨어진다
    2. 코드 재사용성이 떨어진다
      → 데이터베이스의 퀄리와 같이 정형화된 처리 패턴을 가지지 못하기 때문에 데이터마다 다른 방법을 사용해야 함

그럼 Stream이 어떻게 가독성과 코드 재사용성을 높여줄까?

  • 데이터를 추상화한다
    → 다양한 방식으로 저장된 데이터를 읽고 쓰기 위한 공통된 처리방식이 존재
  • 배열과 컬렉션 뿐이 아니다
    → 파일에 저장된 데이터도 같은 방식으로 핸들링 가능해짐

Stream의 특징을 알아보자

  1. 외부 반복(컬렉션을 핸들링하듯)이 아닌 내부 반복을 통해 작업을 수행
  2. 재사용이 가능한 컬렉션과는 달리 ↔ 단 한번만 사용가능
  3. 원본 데이터를 변경하지 않음
  4. 스트림의 연산이 filter-map 기반 API를 사용으로 지연 연산이 가능
  5. 스트림은 parallelStream()메서드로 손쉽게 병렬처리를 지원한다, 다만 병렬처리가 성능을 무조건 높여주는 것이 아님은 명시

Stream의 동작 3단계

  1. 스트림의 생성
  2. 스트림의 중개 연산( 스트림의 변환 )
  3. 스트림의 최종 연산
profile
세상이 원하는 서비스를 만드는 그날까지

0개의 댓글