아이템461 [Effective Java] 아이템46 스트림에서는 부작용 없는 함수를 사용하라 ■ 스트림에서는 부작용 없는 함수를 사용하라 스트림은 함수형 프로그래밍에 기초한 패러다임이다. 스트림 패러다임의 핵심은 계산을 일련의 변환으로 재구성하는 부분이다. 이때 각 단계는 가능한 한 이전 단계의 결과를 받아 처리 하는 순수 함수여야 한다. 순수 함수란 입력만이 결과에 영향을 주는 함수이다. 다른 가변 상태를 참조하지도 않고, 함수 스스로도 다른 상태를 변경하지 않는다. 이렇게 하려면 스트림 연산에 건네는 함수 객체는 모두 부작용이 없어야한다. 아래 코드는 텍스트 파일에서 단어별 수를 세어 map에 저장하고 있는 코드이다. 메서드 참조도 사용했고, 결과도 올바르지만 이는 스트림 코드라 할 수 없다. 스트림 API의 이점을 살리지 못하여 같은 기능의 반복 코드 보다 길고, 읽기 어렵고 유지보수 에도.. 2021. 6. 28. 이전 1 다음