From 099970c79169ba9d5b5054b2d5e43c1eb4f9fb46 Mon Sep 17 00:00:00 2001 From: sangbooom Date: Tue, 16 Apr 2024 22:43:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B1=95=ED=84=B0=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\203\201\353\262\224.md" | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 "\354\261\225\355\204\260_2/\354\203\201\353\262\224.md" diff --git "a/\354\261\225\355\204\260_2/\354\203\201\353\262\224.md" "b/\354\261\225\355\204\260_2/\354\203\201\353\262\224.md" new file mode 100644 index 0000000..1b24f74 --- /dev/null +++ "b/\354\261\225\355\204\260_2/\354\203\201\353\262\224.md" @@ -0,0 +1,55 @@ +# 2장 + +피자 가게를 운영하는 토니는 로봇에 함수형 사고를 주입시킨다. + +기대효과: 파트 1이 끝나면 액션과 계산을 구분하고 액션과 계산을 자유롭게 옮길 수 있을 것 + +## 파트 1. 액션과 계산, 데이터 + +### 액션 + +호출 횟수와 시점에 의존함 + +- 반죽 펴기 +- 피자 배달 +- 재료 주문 + +### 계산 + +실행해도 다른곳에 영향을 주지 않음 + +- 조리법 +- 재료 쇼핑 목록 + +### 데이터 + +변경 불가능한 데이터를 사용하려고 함 + +- 고객 주문 +- 영수증 +- 조리법 + +## 변경가능성에 따라 코드 나누기 + +계층화 설계를 한다. 레이어에 대한 비즈니스 규칙, 도메인 규칙, 기술 스택을 나누는데 피자 예시에 적합한지는 아직 모르겠음. 맛보기라고 함 + +## 파트 2. 일급 추상 + +### 타임라인 다이어그램 만들기 + +1. 주문접수 +2. 반죽 만들기 +3. 치즈 갈기 +4. 소스 만들기 +… 생략 +5. 버거 조립 + +--- + +타임라인 다이어그램을 사용하면 액션이 시간 순서에 따라 어떻게 실행되는지 볼 수 있음 + +⇒ 실행 순서가 중요. 동기적 + +근데 2,3,4번은 병렬적으로 가능함. 근데 타임라인에 맞는 순서가 있기 때문에 2,3,4 번 다 한다음에 5번이 가능함 + +타임라인 커팅이라는게 있는데 독립적으로 동작하되 다른 타임라인이 끝나기를 기다림 ⇒ Promise.all() \ No newline at end of file