[Java] Java Stream 개념부터 잡기

기록하기·2025년 5월 3일

Java

목록 보기
9/9

1. API란?

API (Application Programming Interface)는 두 소프트웨어가 기능이나 데이터를 주고받기 위해 정해놓은 규칙(명세)이다.

쉽게 말해, 서로 다른 프로그램이 정해진 방식에으로 소통할 수 있게 해주는 설명서 또는 사용법을 말한다.

List<String> list = new ArrayList<>();
list.add("추가");

위 코드에서 add()는 우리가 직접 구현한 메서드가 아니지만,
Java API에 정의된 메서드를 호출함으로써 리스트에 데이터를 추가할 수 있다.

add()가 아니라 추가해줘() 같은 임의의 이름을 사용하면 동작하지 않는다.
Java API가 정의한 명세를 따라야만 우리가 의도한 기능이 수행되는 것이다.


2. Java API와 패키지 구조

Java API는 Java에서 기본적으로 제공하는 기능들의 집합이다.

우리가 Java에서 사용하는 List, Map, Math, Stream 등은 모두 Java API에 포함되어 있으며,
다음과 같이 기능별로 패키지(package)라는 단위로 나뉘어 관리된다.

  • java.util → 유틸리티 클래스 (List, Map 등)
  • java.io → 입출력 기능 (InputStream 등)
  • java.util.stream → 스트림 처리 기능 (Stream 등)

3. Java에서 말하는 "Stream"이란?

Stream의 사전적 의미는 흐름, 연속적인 흐름이며,
프로그래밍에서는 일련의 데이터를 한 방향으로 흘려보내며 처리하는 구조를 의미한다.

대표적인 예:

  • 파일을 읽을 때 사용하는 InputStream
  • 데이터를 출력하는 OutputStream
  • 영상/음악을 실시간으로 전송하는 스트리밍 서비스

Java Stream API를 설명하기 전, 먼저 "Stream"은 데이터를 흐름처럼 처리하는 방식 이라는 개념부터 이해하면 된다.


4. Java Stream API란?

Java Stream API는 위에서 설명한 Stream 개념을 Java에서 공식적으로 구현해 제공하는 기능 집합이다.

Java Stream API에는 다음과 같은 클래스들이 포함되어 있으며,
java.util.stream 패키지 안에 정의되어 있다.

  • Stream, IntStream, LongStream 등 스트림 인터페이스
  • Collectors, StreamSupport, Spliterator 등 보조 유틸리티 클래스

이해하기 쉽게 비유로 포현해보자면 다음과 같다.

비유 대상실제 의미
📦 java.util.stream 패키지기능이 정리되어 담긴 서랍
🔧 Stream API서랍 안에 있는 공구 세트 (기능 집합)
🛠️ Stream, Collectors, map, filter...우리가 직접 사용하는 공구들
🧑‍🔧 개발자공구를 조합해 데이터를 가공하는 사람 = Stream 사용자

5. 정리하자면

  • Stream: 데이터를 흐름처럼 처리하는 개념
  • API: 기능을 사용할 수 있도록 정의된 명세
  • Java Stream API: Java에서 Stream 기능을 사용할 수 있도록 제공하는 기능 모음

이 기능들은 java.util.stream 패키지 안에 포함되어 있고,
우리는 그 안의 메서드들(map, filter, collect 등)을 조합해 데이터를 처리한다.

이러한 과정을 우리는 흔히 "Stream을 사용한다"고 말하는 것이다.

0개의 댓글