서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
함수형 자바스크립트 (새롭고 올바른 자바스크립트 프로그래밍 기법)
저자 : 마이클 포거스
출판사 : 한빛미디어
출판년 : 2014
ISBN : 9788968480799
책소개
자바스크립트를 올바로 사용할 수 있는 방법으로 함수형 프로그래밍 기법을 제시한다. 이 과정에서 Underscore.js를 사용하여 자바스크립트의 가장 큰 걸림돌인 ‘이상한 점’, ‘안전하지 않은 특성’, ‘수많은 경쟁 라이브러리가 있다는 사실’을 극복한다.
* 언더스코어(Underscore.js)란 무엇인가?
함수형 프로그래밍을 지원하는 자바스크립트 라이브러리로써 Prototype.js (또는 루비)에서 제공하는 것과 비슷한 기능을 함수형 프로그래밍용으로 제공한다. 하지만 언더스코어는 자바스크립트 내장 객체를 확장하지 않는다.
목차
1장. 함수형 자바스크립트 소개
함수형 프로그래밍과 Underscore.js를 포함한 몇 가지 중요한 주제를 소개한다.
_1.1 자바스크립트 활용사례
_1.2 함수형 프로그래밍 시작하기
_1.3 언더스코어와 관련한 잡담
_1.4 요약
2장. 일급 함수와 응용형 프로그래밍
일급 함수를 정의하고 사용하는 방법을 보여 주며 몇 가지 일반적인 적용 사례를 보여 준다. 일급 함수를 사용하는 기법 중 하나로 응용형 프로그래밍을 설명한다. 또한 함수형 프로그래밍을 이용한 소프트웨어 개발의 핵심인 ‘데이터 고찰’을 살펴본다.
_2.1 일급 함수의 특징
_2.2 응용형 프로그래밍
_2.3 데이터 고찰
_2.4 요약
3장. 변수 스코프와 클로저
자바스크립트 함수형 프로그래밍의 두 가지 핵심을 설명하는 과도기 장이다. 자바스크립트에서 흔히 사용하는 어휘적 스코핑, 동적 스코핑, 함수 스코핑 등을 포함한 다양한 변수 스코핑을 살펴보며, 클로저가 어떻게 동작하며 어떤 방식으로 그리고 왜 클로저를 사용하는지 살펴본다.
_3.1 전역 스코프
_3.2 어휘 스코프
_3.3 동적 스코프
_3.4 함수 스코프
_3.5 클로저
_3.6 요약
4장. 고차원 함수
2장과 3장에서 배운 내용을 기초로 하여 일급 함수의 중요 유형인 고차원 함수를 설명한다. ‘고차원 함수’라는 말이 조금 복잡해 보일 수도 있지만, 고차원 함수가 간단함을 보여준다.
_4.1 다른 함수를 인자로 취하는 함수
_4.2 다른 함수를 반환하는 함수
_4.3 지금까지 배운 내용을 모두 활용: 객체 검증자
_4.4 요약
5장. 함수로 함수 만들기
다른 함수를 이용해서 함수를 ‘만드는’ 방법을 살펴본다. 함수를 만드는 것은 함수형 프로그래밍에서 중요한 기법이므로 함수를 만드는 방법을 적절히 설명한다.
_5.1 함수 조립의 핵심
_5.2 커링
_5.3 부분 적용
_5.4 함수의 끝을 서로 연결하는 함수 조립 방법
_5.5 요약
6장. 재귀
직접 또는 간접적으로 자신을 호출하는 재귀 함수를 설명하는 과도기 장이다. 자바스크립트에서는 재귀에 한계가 있어서 자주 사용되진 않는다. 그러나 재귀의 한계를 극복할 수 있는 방법이 있는데 이를 일부 설명한다.
_6.1 자신을 호출하는 함수
_6.2 상호 재귀 함수(서로를 호출하는 함수)
_6.3 너무 깊은 재귀!
_6.4 재귀는 저수준 동작이다
_6.5 요약
7장. 순수성, 불변성, 변경 정책
어떤 것도 바꾸지 않는 함수형 코드를 구현하는 다양한 방법을 살펴본다. 간단히 말하면, 변수가 바뀌지 않을 때 함수형 프로그래밍을 쉽게 적용할 수 있다. 변수가 바뀌지 않는 상황이 어떤 의미인지 자세히 설명한다.
_7.1 순수성
_7.2 불변성
_7.3 변화 제어 정책
_7.4 요약
8장. 흐름 기반 프로그래밍
관찰 작업을 살펴본다. 전체 시스템을 데이터를 가공하고 이동시키는 가상의 함수 ‘조립 라인’으로 간주한다.
_8.1 체이닝
_8.2 파이프라이닝
_8.3 데이터 흐름과 제어 흐름
_8.4 요약
9장. 클래스를 이용하지 않는 프로그래밍
클래스 기반의 객체 지향 프로그래밍을 전혀 적용하지 않는 흥미로운 방식으로 응용 프로그램을 만드는 함수형 프로그래밍 방식을 설명한다.
_9.1 데이터 지향
_9.2 믹스인
_9.3 }).call("Finis" );
부록 A. 실생활의 함수형 자바스크립트
부록 B. 참고문헌