함수형 프로그래밍이란 수학 함수를 사용하여 부수 효과를 최소화하는 프로그래밍 패러다임입니다.

  • 수학 함수: 순수 함수라고도 불리며, 입력 값이 같으면 항상 같은 결과 값을 내놓습니다.
  • 부수 효과: 함수 외부의 상태를 변경하는 것을 의미합니다. 부수 효과를 완전히 없애는 것이 좋은 프로그래밍이라고도 볼 수 있지만, 현실에서 완전히 없애는 것은 불가능합니다.

함수형 프로그래밍에서는 코드를 세가지로 분류합니다.

  1. 액션: 실행 시점과 실행 횟수에 의존적인 코드
  2. 계산: 입력 값이 같으면 항상 같은 결과 값을 내놓는 코드
  3. 데이터: 실행 과정 없이도 항상 값이 같은 코드

이어지는 챕터에서 다룰 예정이지만, 액션보다는 계산으로, 계산보다는 데이터로 코드를 작성하는 것이 좋습니다. 특히 요즘 유행하는 분산 시스템에 어울립니다. 실행 시점이나 횟수에 의존하지 않는 계산이나 데이터를 이용하면 분산 시스템에서 발생할 수 있는 여러가지 문제를 예방할 수 있습니다.

또, 액션을 계산으로 최대한 변경함으로써 액션 코드도 다루기 쉬워집니다.

위와 같이 코드를 분류하여 생각하는 과정과 더불어 일급 추상에 대한 이해도 필요합니다. 일급 추상이란 간단히 말하면, 함수를 다른 함수에 인수로 전달하고, 다른 함수의 값으로 반환하고, 변수에 할당하거나 데이터 구조에 하는 것을 의미합니다.

앞으로 함수형 사고를 위해 필요한 개념들을 챕터별로 다루어 보겠습니다. 특히, 본 책에서는 실제 소프트웨어에서 활용되고 있는 방식을 예로 들어, 업무에서 적용할 수 있는 방법을 소개하고자 합니다.