Java Stream Java는 객체지향 언어이기 때문에 기본적으로 함수형 프로그래밍이 불가능합니다. 하지만 JDK 8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java에서도 함수형 프로그래밍이 가능하게 되었습니다. JDK 8 이전에는 배열 또는 컬렉션 인스턴스를 다룰 때 for문 또는 for each 문을 돌면서 요소를 하나씩 꺼내서 다루는 방법을 사용했습니다. 간단한 경우는 상관이 없지만 로직이 복잡해질 경우 코드 양이 많아져서 여러 로직이 섞이게 되고, 메서드를 나눌 경우 루프를 여러 번 도는 경우가 발생합니다. Stream은 '데이터의 흐름' 입니다. Stream을 사용하면 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하여 가공된 결과를 얻을..