본문 바로가기

Program Language

함수형 프로그래밍

함수형 프로그래밍(Functional Programming)은 컴퓨터 프로그래밍 패러다임 중 하나

 

함수를 이용해 문제를 분해하고 해결하는 프로그래밍 방식입니다. 이는 명령형 프로그래밍(Imperative Programming)과 대비되며, 상태 변화를 최소화하고 순수 함수(Pure Function)를 이용해 코드를 작성하는 것이 특징입니다.

 

"순수 함수"란

함수가 입력값에 대해 언제나 동일한 결과를 반환하면서 부작용(side-effect)이 없는 함수를 의미합니다.
즉, 같은 인자를 전달하면 항상 같은 결과를 반환하며, 함수 외부의 상태를 변경하지 않는 함수입니다. 이러한 순수 함수는 프로그래밍에서 예측 가능하고 안정적인 동작을 보장합니다.

 

순수 함수는 함수형 프로그래밍에서 매우 중요합니다.

함수형 프로그래밍은 부작용(side-effect)이 없는 함수를 작성하고 조합하여 프로그램을 작성하는 것을 강조합니다. 이는 코드의 가독성을 높이고 디버깅 및 테스팅을 용이하게 합니다.

 

순수 함수의 예시로는,

입력값을 제곱하는 함수 square(x)가 있을 수 있습니다. 이 함수는 입력값 x를 변경하지 않고 항상 x*x를 반환합니다. 이 함수는 부작용이 없으며, 같은 인자를 전달하면 항상 같은 결과를 반환합니다.

 

이러한 순수 함수(Pure Function)는 사이드 이펙트(Side Effect)가 없기 때문에 안전하게 다른 함수에서 사용될 수 있습니다. 순수 함수를 이용하면 코드의 테스트와 디버깅이 용이해지며, 코드의 안정성을 높일 수 있습니다.


함수형 프로그래밍에서는 함수를 일급 객체(First-Class Citizen)로 다룹니다.

이는 함수를 변수에 저장하거나, 함수를 인자로 전달하거나, 함수를 반환하는 등의 작업이 가능하다는 것을 의미합니다.

이를 통해 함수의 조합성(Composability)을 높이고, 코드의 재사용성을 높일 수 있습니다.

 

함수형 프로그래밍에서는 상태 변화(State Mutation)를 최소화합니다.

이는 데이터를 변경하는 대신, 새로운 데이터를 생성하여 반환하는 방식으로 동작합니다. 이를 통해 코드의 안정성과 가독성을 높일 수 있습니다.

함수형 프로그래밍에서는 불변성(Immutability)을 지향합니다.

이는 변수나 데이터 구조를 변경할 수 없게끔 작성하는 것을 의미합니다. 이를 통해 다른 함수에서 의도하지 않은 데이터 변경이 일어나는 것을 방지하고, 코드의 안정성을 높일 수 있습니다.

'Program Language' 카테고리의 다른 글

First-class citizen 일급객체 (first-class object)  (0) 2023.03.20