함수형 사고는 함수형 프로그래밍의 기술과 개념을 말합니다. 함수형 프로그래머는 코드를 액션과 계산, 데이터로 나눠서 바라봅니다.
자바스크립트를 안다면, 어쩌면 이 글을 읽고 있는 당신은 욕부터 할 지도 모른다(?). 다른 언어들에 비해 자바스크립트는 객체 지향 언어라고 하기엔 부족하고, 함수형 언어라고 하기도 애매하다. 과연 React는 함수형 프로그래밍이 가능할까?
2장에서는 액션, 계산, 데이터를 피자 가게에 빗대어 설명해서 이해하기 쉽게 도와준다. 여기에 "계층적 설계" 원칙을 덧붙여 새로운 개념도 추가할 수 있게 해주었다.
본격적으로 심화 과정이 시작된 3장과 4장, 그리고 대망의 5장이다. 가장 헷갈리는 부분인 액션과 계산을 분리하는 것에 대해서 연습도 해보고 개념도 되짚어본다.
6장과 7장에서는 본격적으로 불변성을 지키기 위해 데이터를 복사할 때 필요한 Copy on Write와 방어적 복사를 다룬다. 자바스크립트의 내장 메소드는 예전 문법일수록 복사본을 만드는 형태가 아닌, 원본을 조작하는 형태인 경우가 많다.
8장과 9장에서는 계층형 설계에 대해서 다룬다. 요컨대 소프트웨어를 개발할 때 왜 계층별로 나눠서 코드 의존도에 따라 기능을 설계하고 구현해야하는지, 그 이유를 설명하는 챕터다.
일급함수와 코드 냄새 제거하기
map(), filter(), reduce()를 활용해 배열 반복문을 함수형 도구로 바꾸는 방법에 대해서 기술한 장이다.