서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
함수형 자바스크립트 입문(2판) (ECMAScript 8로 함수형 프로그래밍 개념부터 라이브러리 구축까지)
저자 : 안토 아라빈스|스리칸스 마치라주
출판사 : 에이콘출판
출판년 : 2020
ISBN : 9791161753997
책소개
자바스크립트를 함수형 패러다임으로 소개한다. underscore.js와 유사한 함수형 라이브러리를 만들면서 함수형 프로그래밍을 이해한다. 함수형 패러다임의 기초인 1급 함수, 고차 함수, 커링, 클로저 등을 ES8의 최신 버전으로 알아본다. 합성 함수를 자세히 배우고, 함수자와 모나드도 알아본다. async와 await 등과 같이 ES8에서 제공되는 새로운 특성을 여러 함수와 함께 배워본다. 마지막으로 함수형 자바스크립트 단위 테스팅과 프레임워크를 소개한다.
목차
1장. 간단하게 살펴보는 함수형 프로그래밍
__함수형 프로그래밍이란 무엇이고, 왜 중요한가?
__참조적 투명성
__명령형, 선언형, 추상화
__함수형 프로그래밍의 장점
__순수 함수
____순수 함수는 테스트하기 편한 코드다
____이상적 코드
____병렬 코드
____캐시 가능
____파이프라인과 컴포저블
__순수 함수는 수학적인 함수다
__작업해야 할 것
__자바스크립트는 함수형 프로그래밍 언어인가?
__요약
2장. 자바스크립트 함수의 기본
__ECMAScript 역사
__함수 생성과 실행
____첫 번째 함수
____엄격한 방식
____상태 반환은 옵션이다
____다양한 상태 함수
____함수 인자
____ES5 함수는 ES6 이후에서도 동작한다
__프로젝트 구성
____초기 구성
____반복 문제에 대한 첫 번째 함수적 접근
____출력
____입력
____바벨-노드를 사용한 코드 실행
____npm에서 스크립트 작성
____깃을 이용한 코드 실행
__요약
3장. 고차 함수
__데이터의 이해
____자바스크립트 데이터형 이해
____함수 저장
____함수 전달
____함수 반환
__추상화와 고차 함수
____추상화 정의
____고차 함수를 통한 추상화
__현실에서의 고차 함수
____every 함수
____some 함수
____sort 함수
__요약
4장. 클로저와 고차 함수
__클로저 이해
____클로저란?
____어디서부터 생겨났을까?
____sortBy 함수 다시 살펴보기
__실제 세계에서의 고차 함수(계속)
____tap 함수
____unary 함수
____once 함수
____memoize 함수
____assign 함수
__요약
5장. 배열로 함수형 다루기
__배열로 함수형 다루기
____map
____filter
__연산 연결
____concatAll
__함수 축소
____reduce 함수
__함수 압축
____zip 함수
__요약
6장. 커링과 부분 적용
__용어 정리
____단항 함수
____이항 함수
____가변 인자 함수
__커링
____커링을 사용하는 경우
____커링을 사용한 logger 함수
____커링 다시 살펴보기
____다시 logger 함수로
__커링의 실제 사용
____배열 요소에서 숫자 검색
____배열 제곱
__데이터 플로우
____부분 적용
____부분 함수 구현
____커링과 부분 적용
__요약
7장. 컴포지션과 파이프라인
__일반적인 용어에서의 컴포지션
____유닉스 철학
__함수형 컴포지션
____map, filter 다시 살펴보기
____compose 함수
__compose 함수 다루기
____구원자: curry와 partial
____여러 함수 합성
__파이프라인과 시퀀스
____파이프 구현
____컴포지션의 특이점
____파이프라인 연산자
____tap 함수를 사용한 디버깅
__요약
8장. 함수자
__함수자란?
____함수자는 컨테이너다
____map 구현
__MayBe
____MayBe 구현
____간단한 사용자 케이스
____실제 사용자 케이스
__Either 함수자
____Either 구현
____Reddit 예제 Either 버전
__주의할 단어: 포인팅된 함수자
__요약
9장. 모나드
__검색 쿼리용 Reddit 댓글 가져오기
__문제
____첫 번째 단계 구현
____Reddit 호출 병합
____중첩된/다양한 map의 문제
__join으로 문제 해결
____join 구현
____chain 구현
____모나드란?
__요약
10장. 제너레이터를 통한 정지, 재개, 비동기
__비동기 코드와 그 문제
____콜백 지옥
__제너레이터 101
____제너레이터 생성
____제너레이터의 경고
____yield 키워드
____제너레이터의 done 속성
____제너레이터에 데이터 전달
__비동기 호출 조작에 제너레이터 사용
____비동기용 제너레이터: 간단한 경우
____비동기를 위한 제너레이터: 실세계 경우
__ECMAScript 2017의 비동기 함수
____Promise
____await
____async
____콜백 연결하기
____비동기 호출에서 에러 핸들링
____제너레이터로 트랜스파일된 비동기 함수
__요약
11장. 반응형 라이브러리 빌드
__불변성
__간단한 Redux 라이브러리 빌드
__HyperApp과 같은 프레임워크 구성
____가상 DOM
____JSX
____JS Fiddle
____createActions
____render
____patch
____update
____merge
____remove
____요약
12장. 테스트와 마무리
__소개
__테스팅의 종류
__BDD와 TDD
__자바스크립트 테스트 프레임워크
____Mocha를 사용한 테스팅
____Sinon을 사용한 모의 테스트
____Jasmine을 통한 테스팅
__코드 커버리지
__Linting
__라이브러리 코드 단위 테스팅
__마무리
__요약