FP의 정의: 수학적 함수의 특징을 보이고 side effect 없는 프로그래밍 패러다임
FP의 정의와는 달리 현실은 side effect를 다룰 수 밖에 없다
FP에서는 기능을 action, calculation, data로 구분 한다.
Functional thinking - 이 책을 관통하는 주제
Functional thinking의 실예, Toni's Pizza
Business rules / Domain rules / Tech stack 의 3단계로 나누는 계층 디자인. 비지니스 룰은 자주 바뀌고 테크스택은 가장 천천히 변경된다.
로봇 한 대가 피자를 만드는 부엌, 단순한 타임라인을 갖는다 → 순차 처리 프로그래밍
로봇이 세 대로 늘어나면서 분업을 시도하였으나 서로 협업이 안 되며 혼란을 겪게 된다 → 분산 처리 프로그래밍
타임라인 다이어그램을 통해 분석해보니 분산 처리의 어려움을 깨닫게 되었고 타임라인에 동기화 라인을 추가하여 문제를 해결하였다. → 부검 과정
타임라인 다이어그램을 사용하면 시간의 흐름에 따라 액션이 수행되는 과정을 시각화하여 볼 수 있기 때문에 분산 처리 문제를 이해하는 데 도움이 된다.