Skip to content

Commit

Permalink
챕터 3 (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
hyesungoh authored May 8, 2024
1 parent 5687172 commit 05f33b4
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions 챕터_3/오혜성.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 액션과 계산, 데이터의 차이를 알기
* 함수형 프로그래머는 액션과 계산, 데이터를 구분한다
+ 액션, 계산, 데이터는 어디에나 적용 가능
+ 액션 안에 계산, 데이터 또 다른 액션이 숨어 있을지도 모름
+ 계산은 더 작은 계산과 데이터로 나누고 연결할 수 있다
+ 계산은 때로 '우리 머릿속에서' 일어난다
- 계산이 잘 보이지 않는 이유는 우리 사고 과정에 녹아있기 때문

## 데이터

* 불변성
+ 카피 온 라이트 - 변경할 때 복사본을 만듦
+ 방어적 복사 - 보관하려고 하는 데이터의 복사본을 만듦

* 데이터의 장점
+ 직렬화
+ 동일성 비교
+ 자유로운 해석

* 단점
+ 해석이 반드시 필요하다는 점이 단점

## 계산

* 액션보다 좋은 이유
+ 테스트하기 쉬움
+ 기계적인 분석이 쉬움
+ 조합하기 좋음
- 계산을 조합해 더 큰 계산을 만들 수 있음 (일급 계산)

* 일반적으로 순수 함수, 수학 함수라고 부름

## 액션

* 액션은 다양한 형태로 나타난다

> 그렇다면 리액트 기반 현실 세계에서의 액션은 무엇일까요?
> - setState
> - useEffect? < effect에서 액션이라할 코드가 없다면? 그거부터 필요가 없는 이펙트인가?
* 일반적으로 순수하지 않은 함수, 부수 효과 함수 등이라 부름

* 액션은 쉽지 않음
+ 액션은 소프트웨어를 실행하려는 중요한 이유
- 함수형 프로그래머는 액션을 잘 사용함
- 가능한 액션을 적게 사용
- 액션을 가능한 작게 만듦
- 외부 세계와 상호작용하는 것을 제한
- 호출 시점에 의존하는 것을 제한 (덜 의존하도록 만듦)



0 comments on commit 05f33b4

Please sign in to comment.