Java ‐ 함수형 프로그래밍 - dnwls16071/Backend_Summary GitHub Wiki
📚 자바와 함수형 프로그래밍 - 순수 함수
- 같은 인자를 주면 항상 같은 결과를 반환하는 함수
- 외부 상태(변할 수 있는 전역 변수 등)에 의존하거나, 외부 상태를 변경하는 부수 효과(Side Effect)가 없는 함수를 의미
📚 자바와 함수형 프로그래밍 - 사이드 이펙트 최소화
- 함수형 프로그래밍에서는 상태 변화를 최소화하기 위해 변수나 객체를 변경하는 것을 지양
- 이로 인해 프로그램의 버그가 줄어들고, 테스트나 병렬 처리(Parallelism), 동시성(Concurrency) 지원이 용이
📚 자바와 함수형 프로그래밍 - 불변성 지향
- 데이터는 생성된 후 가능한 한 변경하지 않고, 변경이 필요한 경우 새로운 값을 생성해 사용
- 가변 데이터 구조에서 발생할 수 있는 오류를 줄이고, 프로그램의 예측 가능성을 높여준다.
📚 자바와 함수형 프로그래밍 - 일급 시민 함수
- 함수가 일반 값(숫자, 문자열, 객체(자료구조) 등)과 동일한 지위를 가진다.
- 함수를 변수에 대입하거나, 다른 함수의 인자로 전달하거나, 함수에서 함수를 반환하는 고차 함수를 자유롭게 사용
📚 자바와 함수형 프로그래밍 - 선언형 접근
- 어떻게가 아닌 무엇을 계산할지 기술
- 복잡한 제어 구조나 상태 관리를 함수의 합성과 함수 호출로 대체하여 간결하고 가독성 높은 코드를 작성
📚 자바와 함수형 프로그래밍 - 함수 합성
- 간단한 함수를 조합해 더 복잡한 함수를 만드는 것을 권장
- 작은 단위의 함수들을 체이닝(Chaining)하거나 파이프라이닝(Pipelining)해서 재사용성을 높이고, 코드 이해도를 높인다.
📚 자바와 함수형 프로그래밍 - 지연 평가
- 필요한 시점까지 계산을 미루는 평가 전략
- 불필요한 계산 비용을 줄인다.