함수형 프로그래머는 액션과 계산, 데이터를 구분하여 개발과정에서 적용할 수 있습니다.
데이터
- 이벤트에 대한 사실. 일어난 일의 결과를 기록한 것입니다.
e.g. 구입하려는 음식 목록, 이름, 전화 번호, 음식 조리법 - 데이터는 데이터 자체로 할 수 있는 것이 없기 때문에 데이터 그대로 이해할 수 있는 것이 장점입니다.
- 해석하지 않아도 실행할 수 있는 계산에 비해 해석이 반드시 필요하다는 점은 단점입니다.
- 데이터를 언제나 쉽게 해석할 수 있도록 표현하는 것이 함수형 프로그래밍에서 중요한 기술입니다.
계산
- 입력값으로 출력값을 만드는 것. 순수 함수, 수학 함수라고 부르기도 합니다.
e.g. 최댓값 찾기, 이메일 주소가 올바른지 확인하기 - 실행 시점과 횟수에 관계없이 항상 같은 입력값에 대해 같은 출력값을 돌려줍니다.
- 함수형 프로그래머는 가능하면 액션보다 계산을 사용하려고 합니다.
- 액션보다 좋은점
- 테스트가 용이합니다. 언제 어디서나 원하는만큼 테스트를 실행할 수 있습니다.
- 조합하기 쉽습니다. 계산을 조합해 더 큰 계산을 만들 수 있습니다.
- 계산과 액션은 입력값으로 실행하기 전에는 어떤 결과가 나오는지 알 수 없다는 단점이 있습니다.
- 계산은 일반적으로 함수형 프로그래밍 외부에 있는 액션을 통해 수행됩니다.
액션
- 외부 세계에 영향을 주거나 받는 것을 말합니다. 부수 효과라고 부르기도 합니다.
e.g. 이메일 보내기, 계좌에서 인출하기, ajax 요청 보내기 - 실행 시점과 횟수에 의존합니다.
- 액션은 다루기 힘들며 우리가 소프트웨어를 실행하려는 가장 중요한 이유입니다.
- 함수형 프로그래머가 액션을 잘 사용하기 위한 방법입니다.
- 가능한 액션을 적게 사용합니다. 액션 대신 계산을 사용할 수 있는지 생각해봐야 합니다.
- 가능한 작게 만듭니다. 액션에서 액션과 관련 없는 코드는 모두 제거합니다. (계산으로 빼낼 수 있다면 빼냄.)
- 외부세계와 상호작용하는 것을 제한할 수 있습니다. 내부에 계산과 데이터만 있고 가장 바깥쪽에 액션이 있는 구조가 이상적입니다.
- 호출 시점에 의존하는 것을 제한합니다.
'개발서적 > 쏙쏙 들어오는 함수형 코딩' 카테고리의 다른 글
CH4. 액션에서 계산 빼내기 (1) | 2023.12.21 |
---|