스트림에서는 부작용 없는 함수를 사용하라 🐣 부작용이 없다? - 오직 입력만이 결과에 영향을 줘야 한다. - 다른 가변 상태를 참조하지 않고, 함수 스스로도 다른 상태를 변경하지 않는다. 이것을 `순수 함수`라고 부른다. 다음 예시에선, 스트림의 forEach에서 외부의 results를 참조하고, results의 상태를 변경하게 되는 부작용이 발생한다. ArrayList results = new ArrayList(); stream.filter(s -> pattern.matcher(s).matches()) .forEach(s -> results.add(s)); 아래처럼 고치는게 좋다. Listresults = stream.filter(s -> pattern.matcher(s).matches()) .coll..