이 책은 장점은 단계별 설명, 결론과 요점 정리, 용어 설명과 간단한 연습문제에 있는 것 같습니다.
책의 전반적인 부분은 분리할 코드를 찾고 래팩터링 하는 방법과 암묵적 입력과 출력을 찾는 방법을 통해 엉켜 있는 코드를 풀고 좋은 코드로 바꾸는 부분이 주를 이루고 있습니다. 이 책의핵심은 함수형 프로그램에 대해서 액션과 계산, 데이터를 구분해서 생각하고, 일급 추상을 생각하는 것이 핵심입니다. javascript로 예제코드가 작성되어 있지만 예제가 크게 어렵지 않아 상관은 없을 것 같습니다.
이 책의 내용은 함수형 프로그램밍에 대한 이해를 돕긴 하지만 이와 별개로 좋은 코드를 작성하기 위한 사고를 길러주고 있습니다. 코드를 수정하기 전 후로 나뉘어서 어떻게 개선되는지 알려줌으로써 이해를 돕기 때문에 받아들이기 쉬웠던 것 같습니다. 책의 내용이 워낙 방대하긴 하지만 함수형 프로그래밍 입문을 하시려는 분들이 읽기 적합할 것 같습니다.
액션과 계산, 데이터
도대체 액션과 계산,데이터 가 무엇이냐고 묻는다면 피자 가게를 예시로 액션과 계산, 데이터가 무엇인지 아래와 같이 생각해 볼 수 있습니다.
액션 : 액션은 호출 횟수와 시점에 의존하는 것을 말합니다.
예) 반죽 펴기, 피자 배달, 재료 주문
계산 : 어떤 것을 결정하거나 계획하는 것이 계산입니다. 계산은 실행해도 다른 곳에 영향을 주지 않으며 아무 때나 사용해도 됩니다.
예) 조리법에 나온 것을 두 배로 만들기, 쇼핑 목록 결정하기
데이터 : 변경 불가능한(immutable) 것, 이벤트에 대한 사실
예시) 고객의 주문, 영수증, 피자 조리법
이 책의 마지막 장에서 나와있는 정리 부분을 옮겨 적고 마무리 하겠습니다.
액션과 계산, 데이터
- 코드에서 액션과 계산, 데이터를 구분해 가장 문제 되는 부분을 찾자
- 액션에서 계산을 빼내 재사용하기 좋고 테스트하기 쉬운 코드로 리팩토링
- 암묵적인 입력과 출력을 명시적인 것으로 바꿔 액션을 개선
- immutable을 구현해 데이터 읽기를 계산으로 만들고
- 계층형 설계로 코드를 구성하고 개선한다.
일급 추상
- 언어의 문법을 일급으로 만들어 코드를 추상화
- 함수형 반복과 혐수형 도구를 사용해 고차원으로 추론
- 함수형 도구를 연결해 데이터 변환 파이프라인을 만든다.
- 타임라인 다이어그램을 통해 동시성 분산 시스템을 이해
- 버그를 없애기 위해 타임라인을 활용
- 고차 함수로 안전하게 상태를 변경
- 반응형 아키텍처를 사용해 원인과 효과의 결합을 줄입니다.
- 세상과 상호작용하기 위해 어니언 아키텍처 설계를 서비스에 적용
'서평' 카테고리의 다른 글
[서평] Good Code, Bad Code(좋은 코드, 나쁜 코드) (0) | 2022.08.05 |
---|---|
[서평] AWS로 시작하는 인프라 구축의 정석 (0) | 2022.06.20 |
[서평] 프로그래머의 뇌 (The Programmer's Brain) (0) | 2022.04.03 |
가상 면접 사례로 배우는 대규모 시스템 설계 기초 (0) | 2021.07.31 |
나는 LINE 개발자입니다. (0) | 2021.03.28 |