『코틀린으로 배우는 함수형 프로그래밍』

함수형 프로그래밍(functional programming, FP)은 함수를 사용해서 데이터 처리의 참조 투명성을 보장하고, 상태와 가변 데이터 생성을 피하는 프로그래밍 패러다임이다. 객체지향형 프로그래밍(object oriented programming, OOP)의 반대되는 개념이 아니라, 명령형 프로그래밍(imperative programming)과 비교되는 개념으로 보는 게 맞다. 함수형 프로그래밍의 특징은 다음과 같다.

  • 불변성 (immutable)
  • 참조 투명성(referential transparency)
  • 일급 함수(first-class-function)
  • 게으른 평가 (lazy evaluation)

함수형 프로그래밍으로 프로그램을 개발하면 다음과 같이 여러 이점이 있다.

  • 부수효과가 없는 프로그램을 만들 수 있어 동시성 프로그래밍에 적합하다.
  • 코드의 복잡도가 낮아 간결한 코드를 만들 수 있고, 모듈성이 높아져 유지보수하기 쉽다.
  • 프로그램의 예측성을 높여 컴파일러가 효율적으로 실행되는 코드를 만들어준다.

함수형 프로그래밍에 대한 연구는 오래전에 시작되었는데, 그 관심은 요즘 들어 더 커졌다. 최근 개발되는 소프트웨어가 직면한 문제들을 해결하는 데 적합한 특장점들을 지니고 있기 때문이다.

참고자료

이 문서를 인용한 문서