개요
함수형 프로그래밍(FP, Functional Programming)
- 수학 함수를 사용하고 부수 효과(side effect)를 피하는 것이 특징인 프로그래밍 패러다임
- 부수 효과 없이 순수 함수(pure function)만 사용하는 프로그래밍 스타일
부수 효과
함수가 리턴값 이외에 하는 모든 일을 말함.
- ex) 메일 보내기나 전역 상태 수정하기 같은 일.
순수 함수
인자에만 의존하고 부수 효과가 없는 함수. 같은 인자를 넣으면 항상 같은 결과를 돌려준다.
실용적인 측면에서 함수형 프로그래밍 정의의 문제점
- 부수 효과는 필요하다.
- 필요할때는 써야한다.
- 함수형 프로그래밍은 부수 효과를 잘 다룰 수 있다.
- 부수 효과를 잘 다루기 위한 도구가 많음.
- 순수하지 않은 함수를 잘 다룰 수 있는 기술이 많이 있음.
- 함수형 프로그래밍은 실용적.
액션과 계산, 데이터 구분하기
액션
- 부르는 시점에 의존
sendEmail(to, from, subject, body)
saveUserDB(user)
getCurrentTime()
- 고민 사항
- 시간이 지남에 따라 안전하게 상태를 바꿀 수 있는 방법
- 순서를 보장하는 방법
- 액션이 정확히 한 번만 실행되게 보장하는 방법
계산
- 입력값을 계산해 출력하는 것
sum(numbers)
string_length(str)
- 고민 사항
- 정확성을 위한 정적 분석
- 소프트웨어에서 쓸 수 있는 수학적 지식
- 테스트 전략
데이터
- 이벤트에 대한 사실을 기록한 것
[1, 10, 2, 45, 3, 98]
{”firstname”: “benn”, “lastname”: “dev”}
- 고민 사항
- 효율적으로 접근하기 위해 데이터를 구성하는 방법
- 데이터를 보관하기 위한 기술
- 데이터를 이용해 중요한 것을 발견하는 원칙
생각정리
함수형 프로그래밍의 진정한 아름다움은 코드 어느곳에나 적용할 수 있는 유익한 내용이라는 점.