함수형 프로그래밍
정의
- Functional Programming, FP
- 상태(state)와 가변 데이터(Mutability)를 멀리하는 프로그래밍 패러다임의 하나
- 즉, 상태를 저장하지 않는 무상태(stateless), 불변성(Immutability)을 지향한다.
- 데이터 변경을 최소화하고, 순수 함수를 활용해 부작용을 줄이는 게 목표
| 용어 | 영문 | 정의 |
|---|---|---|
| 순수 함수 | pure function | 같은 입력에 대해 항상 같은 출력을 반환하는 함수 |
| 부작용 | side effect | 함수가 원래 목적의 값을 계산하는 것 외에 외부에 영향을 미치는 모든 행위 |
파이썬에서의 함수형 프로그래밍
- 파이썬은 절차적, 객체지향, 함수형 프로그래밍 방식을 모두 지원
함수형 프로그래밍의 장점
- 코드의 가독성이 높아짐
- 디버깅이 용이
- 병렬처리를 효율적으로 수행할 수 있음
함수형 프로그래밍의 단점
- 객체지향이나 명령형 프로그래밍에 익숙한 경우, 진입장벽이 존재
- 사고방식 자체를 전환해야 하므로 초기 진입 장벽이 높음
- 모나드나 펑터와 같은 고차원적 개념이 이해하기 어려움
Reference
방송통신대 - 오픈소스기반 데이터분석 (정재화)
Comments