-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
55 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# 2장 | ||
|
||
피자 가게를 운영하는 토니는 로봇에 함수형 사고를 주입시킨다. | ||
|
||
기대효과: 파트 1이 끝나면 액션과 계산을 구분하고 액션과 계산을 자유롭게 옮길 수 있을 것 | ||
|
||
## 파트 1. 액션과 계산, 데이터 | ||
|
||
### 액션 | ||
|
||
호출 횟수와 시점에 의존함 | ||
|
||
- 반죽 펴기 | ||
- 피자 배달 | ||
- 재료 주문 | ||
|
||
### 계산 | ||
|
||
실행해도 다른곳에 영향을 주지 않음 | ||
|
||
- 조리법 | ||
- 재료 쇼핑 목록 | ||
|
||
### 데이터 | ||
|
||
변경 불가능한 데이터를 사용하려고 함 | ||
|
||
- 고객 주문 | ||
- 영수증 | ||
- 조리법 | ||
|
||
## 변경가능성에 따라 코드 나누기 | ||
|
||
계층화 설계를 한다. 레이어에 대한 비즈니스 규칙, 도메인 규칙, 기술 스택을 나누는데 피자 예시에 적합한지는 아직 모르겠음. 맛보기라고 함 | ||
|
||
## 파트 2. 일급 추상 | ||
|
||
### 타임라인 다이어그램 만들기 | ||
|
||
1. 주문접수 | ||
2. 반죽 만들기 | ||
3. 치즈 갈기 | ||
4. 소스 만들기 | ||
… 생략 | ||
5. 버거 조립 | ||
|
||
--- | ||
|
||
타임라인 다이어그램을 사용하면 액션이 시간 순서에 따라 어떻게 실행되는지 볼 수 있음 | ||
|
||
⇒ 실행 순서가 중요. 동기적 | ||
|
||
근데 2,3,4번은 병렬적으로 가능함. 근데 타임라인에 맞는 순서가 있기 때문에 2,3,4 번 다 한다음에 5번이 가능함 | ||
|
||
타임라인 커팅이라는게 있는데 독립적으로 동작하되 다른 타임라인이 끝나기를 기다림 ⇒ Promise.all() |