쏙쏙 들어오는 함수형 코딩 ch04
챕터 4 - 액션에서 계산 빼내기
챕터 4 : 액션에서 계산 빼내기(단계별)
챕터 4 문제 : 액션에서 계산을 빼내는 단계결 방법은?
액션에서 계산을 빼내는 작업은 반복적인 과정입니다.
- 계산 코드를 찾아 빼냅니다
빼낼 코드를 찾아 코드를 추출해 새로운 함수를 만들어 리팩터링함. 새 함수에 인자가 필요하다면 추가함. 원래 코드에서 빼낸 부분에 새 함수를 부르도록 바꿈
- 새 함수에 암묵적 입력과 출력을 찾음
새 함수에 암묵적 입력과 출력을 찾음. 암묵적 입력은 함수를 부르는동안 결과에 영향을 줄 수 있는 것. 함수 인자를 포함해 함수 밖에 있는 변수를 읽거나 데이터베이스에서 값을 가져오는 것은 입력. 리턴 값을 포함해 전역 변수를 바꾸거나 공유 객체를 바꾸거나, 웹 요청을 보내는 것은 출력
- 암묵적 입력은 인자로, 암묵적 출력은 리턴값으로 바꿈
한 번에 하나씩 입력은 인자로, 출력은 리턴 값으로 바꿈. 새로운 리턴 값이 생겼다면 호출하는 코드에서 함수의 결과를 변수에 할당해야할 수도 있음.
여기서 인자와 리턴값은 바뀌지 않는 불변값이라는 것은 중요합니다. 리턴값이 나중에 바뀐다면 암묵적 출력. 또 인자로 받은 값이 바뀔 수 있따면 암묵적 입력. (일단 지금은 바뀌지 않는다고 가정함)
챕터 4 요점정리
- 액션은 암묵적인 입력 또는 출력을 가지고 있음
- 계산의 정의에 따르면 계산은 암묵적인 입력이나 출력이 없어야함
- 공유변수(전역변수)는 일반적으로 암묵적 입력 또는 출력이 됨.
- 암묵적 입력은 인자로 바꿀 수 있음
- 암묵적 출력은 리턴값으로 바꿀 수 있음
- 함수형 원칙을 적용하면 액션은 줄어들고 계산은 늘어남
Q. DOM 이란?
A. 웹 브라우저 안에 있는 HTML 페이지를 메모리상에 표현한 것.
Q. 만약 인자로 전달한 배열을 직접 변경한다면 그 함수는 계산일까요? 계산이 아니라면 왜 아닌가요?
A. 액션이다. 직접 전역변수를 변경하는 건 암묵적 출력이기 때문에?
Q. 액션에서 계산추출의 장점
A.
- 코드를 테스트하기 쉬워짐.
- 재사용하기 좋아짐.
- 동시성이나 설계, 데이터 모델링 측면에서 좋은점 있지만 아직 설명 불가
A. 우[ㅔ