1. 정의
1.1. 함수형 프로그래밍이란
- 부수 효과 없이 순수한 함수만 사용하는 프로그래밍 스타일
- 부수효과란: 함수의
return 이외의 모든 작업, 결과값
을 주는 이외의 행동
- 예) 메일 보내기, 파일 읽기 등
- 부수 효과를 아예 사용안하는 것이 아닌 최소한의 사용 & 격리를 하는것을 의미함
1.2. 함수형 프로그래밍식 사고방식이란
- 부수효과를 덜 갖는 함수를 조합하여 코드를 구현
- 이를 위해 함수를 액션, 계산, 데이터 3가지 관점으로 나누어서 생각
1.2.1. 액션
- 외부 세계에 영향을 주거나 받는 것
실행 시점, 실행 횟수 등에 의존
하는 로직 → 실행 순서가 중요함
- 부수효과가 있는 함수, 순수하지 않는 함수
- 암묵적 입력과 출력이 있으면 부수효과가 있다 라는 것
- 암묵적 입력이란: 명시적 입력외의 모든 입력
- 명시적 입력이란 : 함수의 signature 를 통한 입력
- 예) 전역 변수 참조, DB 값 가져온것 읽기
- 압묵적 출력이란: 명시적 출력외의 모든 출력
- 예) console.log, 메일 보내기, DB에 값 쓰기 등
- 예시
- 예) 메일을 오늘 보내기, 일주일 뒤에 보내기 / 파일 읽기, DB 에서 값 가져오기, 주문하기, 전역 변수 변경하기, 함수 내에서 다른 scope의 object 변경하기
- alert(), console.log, new Date(),
- 액션을 구분해야 하는 이유는 액션은 상위 레이어로 계속 전파 되기 때문(2 chapter 에서 보충 설명)
1.2.2. 계산
- 동일한 입력값에 항상 동일한 결과 값을 return 하는 것,
실행횟수나 시점에 영향 받지 않음 = 아무때나 사용해도 걱정 없음
- 순수 함수
- 예) 모두 더하기, 최대값 찾기, 이메일 주소 유효성 확인하기
- 장점
- 계산은 동시 실행 & 과거 실행 & 미래 실행 & 실행 횟수 등을 걱정할 필요가 없다
- 계산은 테스트하기 좋으며
조합
하기 좋다.