3.2.4 함수형 프로그래밍
1958년에 등장한 함수형 프로그래밍(functional programming)은 비교적 오래된 프로그래밍 패러다임입니다. 하지만 하드웨어의 발전으로 근래에 다시 주목받기 시작했습니다. 함수형 프로그래밍의 어떤 특징 때문인지 자세히 알아봅시다.
불변성
함수형 프로그래밍의 지향점 중 하나는 ‘데이터는 일단 생성되면 변하지 않아야 한다’는 불변성(immutability)입니다. 그래서 데이터를 변경해야 할 때는 데이터의 원본을 복사한 뒤 복사본을 가지고 변경 작업을 수행합니다.
불변성은 겉으로 보기에 불편하게 여겨질 수 있으나 생각보다 장점이 많습니다. 예를 들어 어떤 변수가 예상치 못한 상황에서 엉뚱한 값으로 바뀔 가능성이 있다면 심각한 문제가 발생할 수도 있습니다. 불변성은 이러한 일이 발생하지 않도록 보장하는데, 이는 다른 말로 ‘참조 투명성’이 있다고 표현합니다. 이러한 불변성 덕분에 개발자는 자신이 작성한 프로그램이 어떻게 동작할지 예측하고 프로그래밍할 수 있습니다.