부작용

스트림에서는 부작용 없는 함수를 사용하라 - [7장. 람다와 스트림(아이템46)]
📙 1. 스트림의 핵심 스트림은 그저 또 하나의 API가 아닌, 함수형 프로그래밍에 기초한 패러다임이다. 스트림 패러다임의 핵심은 계산을 일련의 변환(transformation)으로 재구성하는 부분이다. 이때 각 변환 단계는 가능한 한 이전 단계의 결과를 받아 처리하는 순수 함수여야 한다. 순수 함수란 오직 입력만이 결과에 영향을 주는 함수다. 다른 가변 상태를 참조하지 않고, 함수 스스로도 다른 상태를 변경하지 않아야 한다. 이를 위해서는 (중간 단계든 종단 단계든) 스트림 연산에 건네는 함수 객체는 모든 부작용(side effect)이 없어야 한다. 그렇다면 만약 부작용(side effect)이 발생하면 어떻게 될까? 아래와 같은 문제점이 발생하게 된다. 가독성 Stream을 사용한 순간 데이터의 변..