자바

← 목록
2 / 2

자바 스트림 API 기초 — 파이프라인 조립하기

대상 자바 8 람다 표현식과 함수형 인터페이스(Predicate, Function, Comparator)를 익힌 자바 개발자

목표 숫자와 문자열에서 시작해 실제 도메인 객체까지, 스트림 파이프라인을 단계별로 쌓아올리고 최종적으로 메뉴 목록에 부가 정보를 조립한다

완성물 StreamPractice.java 단일 파일. main 메서드에서 메뉴 리스트를 출력하며, 각 항목에 카테고리 이름과 이미지 개수가 채워진 상태

Java 17 이상 환경이 필요합니다. Spring Boot나 데이터베이스는 필요 없으며, 순수 자바 파일 하나로 실행합니다.


STEP 1 / 8숫자 리스트로 첫 파이프라인 만들기

0개 완료 · 8개 남음

  1. 스트림의 기본 골격인 stream() → filter → map → collect 를 숫자 리스트로 직접 만들어 봅니다.

    1-1. 프로젝트 폴더와 파일 만들기

    빈 폴더를 만들고 StreamPractice.java 를 생성합니다.

    mkdir stream-prj
    cd stream-prj

    파일: StreamPractice.java

    import java.util.List;
    import java.util.stream.Collectors;
    
    public class StreamPractice {
        public static void main(String[] args) {
            // 1단계: 숫자 리스트 파이프라인
            List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    
            List<Integer> result1 = numbers.stream()
                    .filter(n -> n % 2 == 0)
                    .map(n -> n * 10)
                    .collect(Collectors.toList());
    
            System.out.println("1단계 결과: " + result1);
        }
    }

    1-2. 컴파일 및 실행

    javac StreamPractice.java
    java StreamPractice

    ✅ 확인

    • 터미널에 1단계 결과: [20, 40, 60, 80, 100] 가 출력됩니다.

    🎓 newlec 쌤의 코멘트

    스트림은 원본 컬렉션(numbers)을 변경하지 않고, 중간 연산(filter, map)을 체이닝하여 마지막에 종단 연산(collect)으로 결과를 받아오는 방식입니다. n % 2 == 0 은 짝수만 남기고, n * 10 은 남은 숫자를 10배로 변환합니다. 이 4단계 구조가 이후 모든 스트림 코드의 뼈대입니다.

    ❌ 자주 하는 실수

    증상 원인 해결
    cannot find symbol: class Collectors java.util.stream.Collectors 임포트 누락 파일 상단에 import java.util.stream.Collectors; 추가
    List.of 에러 Java 9 미만 사용 중 Java 17 이상으로 JDK 버전을 확인하거나 Arrays.asList 로 변경

    📝 이 단계의 핵심

    • 스트림 파이프라인은 stream() 으로 시작하고 collect() 로 끝난다.
    • filter 는 조건에 맞는 요소만 남기고, map 은 요소를 변환한다.

이어지는 내용은 회원만 볼 수 있어요

뉴렉처에 로그인하면 전체 학습 자료를 열람할 수 있습니다.

로그인하기