반응형
함수형 프로그래머는 코드를 세가지로 분리한다.
- 액션
- 계산
- 데이터
- 호출하는 횟수나 호출하는 시점이 중요하다. (의존하고 있기 때문)
- 계산 (sum함수)는 실행이 가능하나 데이터는 그렇지않다. 하지만 횟수는 중요하지 않음
- 함수형 프로그래머는 코드를 액션과 계산, 데이터로 구분한다.
- 함수형 프로그래밍은 데이터 > 계산 > 액션 순으로 선호한다.
액션
- 실행 시점이나 횟수 또는 둘다에 의존함
- 외부 세계에 영향을 주거나 받는다.
계산
- 입력값으로 출력값을 만드는 것. 같은 입력값을 가지고 계산하면 항상 같은 결과값이 나온다.
- 외부 세계에 영향을 주거나 받지 않고 실행시점이나 횟수에 의존하지 않는다.
데이터
- 이벤트에 대해 기록한 사실
- 사실은 변하지않기 때문에 영구적으로 기록할 수 있다.
분산 시스템
함수형 프로그래밍은 분산 시스템에 잘 어울린다.
분산 시스템 규칙은 1) 메세지 순서가 바뀔수 있고, 2)한번이상 도착할 수 있고, 도착하지 않을 수도있으며, 3)응답을 받지 못하며 무슨일이 생겼는지 알수 없다
함수형 사고란?
- 액션과 계산 데이터를 구분 해서 생각하는 것
- 일급 추상 이라는 개념
계층형 설계
가장 아래쪽 객체나 배열 잘 바뀌지 않는 것, 가운데는 바뀔수 있지만 자주 바뀌지 않는것 , 가장 위쪽에는 메뉴와 같이 자주 바뀐는 것
액션은 실행 순서에 의존하기 때문에 실행 순서가 중요하다.
타임라인을 서로 맞추지 않은 분산 시스템은 예측 불가능한 순서로 실행된다.
타임라인 커팅
타임라인 커팅은 여러 타임라인이 동시에 진행 될 때 서로 순서를 맞추는 방법이다. 타임라인 커팅은 고차동작으로 구현한다.
반응형
'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
[함수형 코딩] 액션과 계산 데이터 (0) | 2023.01.24 |
---|---|
얕은 복사 vs 깊은 복사 (vue, react) (0) | 2022.09.25 |
오류 기록 (외부API연동시 options Method 허용 체크) (0) | 2022.07.23 |
promise (0) | 2022.03.06 |
this (0) | 2021.08.02 |