Java ‐ 함수형 프로그래밍 - dnwls16071/Backend_Summary GitHub Wiki

📚 자바와 함수형 프로그래밍 - 순수 함수

  • 같은 인자를 주면 항상 같은 결과를 반환하는 함수
  • 외부 상태(변할 수 있는 전역 변수 등)에 의존하거나, 외부 상태를 변경하는 부수 효과(Side Effect)가 없는 함수를 의미

📚 자바와 함수형 프로그래밍 - 사이드 이펙트 최소화

  • 함수형 프로그래밍에서는 상태 변화를 최소화하기 위해 변수나 객체를 변경하는 것을 지양
  • 이로 인해 프로그램의 버그가 줄어들고, 테스트나 병렬 처리(Parallelism), 동시성(Concurrency) 지원이 용이

📚 자바와 함수형 프로그래밍 - 불변성 지향

  • 데이터는 생성된 후 가능한 한 변경하지 않고, 변경이 필요한 경우 새로운 값을 생성해 사용
  • 가변 데이터 구조에서 발생할 수 있는 오류를 줄이고, 프로그램의 예측 가능성을 높여준다.

📚 자바와 함수형 프로그래밍 - 일급 시민 함수

  • 함수가 일반 값(숫자, 문자열, 객체(자료구조) 등)과 동일한 지위를 가진다.
  • 함수를 변수에 대입하거나, 다른 함수의 인자로 전달하거나, 함수에서 함수를 반환하는 고차 함수를 자유롭게 사용

📚 자바와 함수형 프로그래밍 - 선언형 접근

  • 어떻게가 아닌 무엇을 계산할지 기술
  • 복잡한 제어 구조나 상태 관리를 함수의 합성과 함수 호출로 대체하여 간결하고 가독성 높은 코드를 작성

📚 자바와 함수형 프로그래밍 - 함수 합성

  • 간단한 함수를 조합해 더 복잡한 함수를 만드는 것을 권장
  • 작은 단위의 함수들을 체이닝(Chaining)하거나 파이프라이닝(Pipelining)해서 재사용성을 높이고, 코드 이해도를 높인다.

📚 자바와 함수형 프로그래밍 - 지연 평가

  • 필요한 시점까지 계산을 미루는 평가 전략
  • 불필요한 계산 비용을 줄인다.