CHAPTER 2 현실에서의 함수형 사고
토니 피자에 오신 것을 환영합니다
계층형 설계(stratifed design)원칙이 어떤것인지 알아 본다
분산시스템을 이해 하려고 타임라인 다이어그램(timeline diagram)을 사용
파트 I: 액션과 계산, 데이터
- 액션: 호출 횟수와 시점에 의존하는 것
- 계산: 어떤 것을 결정하거나 계획하는 것은 계산 입니다
- 데이터: 유연하기 때문에 저장하거나 네트워크로 전송하는 등 다양하게 쓸 수 있다
변경 가능성에 따라 코드 나누기
계층형설계는 일반적으로 비즈니스 규칙, 도메인 규칙, 기술 스택 계층으로 나눕니다
파트 II: 일급 추상
타임라인 다이어 그램은 로봇 한대가 피가를 만들기 위한 액션들을 보여 줍니다
분산 시스템을 타임라인으로 시각화하기
분산 시스템에서 독립된 액션의 실행 순서는 어떻게 될지 모른다
각각의 타임라인은 다른 순서로 실행됩니다
타입라인을 서로 맞추지 않은 분산 시스템은 예측 불가능한 순서로 실행된다
어려운 경험을 통해 분산 시스템에 대해 배운 것
- 기본적으로 타임라인은 서로 순서를 맞추지 않습니다
- 액션이 실행되는 시간은 중요하지 않다
- 드물지만 타이밍이 어긋나는 경우는 실제 일어난다
- 타임라인 다이어그램으로 시스템의 문제를 알 수 있다
타임라인 커팅: 로봇이 서로를 기다릴 수 있게 하기
커팅(cutting) : 타임라인의 시간을 맞추는 작업
타임라인 커팅은 고차동작(higher-order operation)으로 구현
좋은 경험을 통해 타임라인에 대해 배운 것
- 타임라인 커팅으로 서로 다른 작업들을 쉽게 이해 할 수 있다
- 타임라인 다이어그램을 사용하면 시간에 따라 진행하는 작업을 쉽게 이해할 수 있다
- 타임라인 다이어그램은 유연하다