나에게 필요한 지식과 기술을 검색해 보세요.

함수형 자바스크립트 : 새롭고 올바른 자바스크립트 프로그래밍 기법

지은이

마이클 포거스

옮긴이

우정은

출간일

2014.01.28

레벨

중고급

평점

5(2명)

정가

22,000

판매가

19,800

총 결제 금액

10%

19,800

적립 예정

990P

쪽수

292P

ISBN

9788968480799

브랜드

한빛미디어

혁신적이고 놀라운 자바스크립트 코딩 기법을 만나자!


이 책은 Underscore.js 라이브러리를 이용해 아름답고 안전하고 직관적이고 테스트하기 쉬운 함수형 자바스크립트 코드를 구현하는 방법을 설명한다. 함수형 프로그램 기법을 배우려는 자바스크립트 프로그래머와 자바스크립트를 배우려는 함수형 프로그래머에게 유용하다.

  • 일급 함수를 이용한 응용 프로그래밍 기법
  • 변수 스코프와 클로저 이해하기, 사용하기
  • 함수로 함수 만들기, 인자로 삼기
  • 재귀 함수 관련 자바스크립트 한계 극복
  • 프로그램에서 상태 변화의 흔적을 줄이기, 숨기기, 제거하기
  • 체인과 함수형 파이프라인을 이용한 흐름 기반 프로그래밍
  • 클래스를 사용하지 않고 코딩하는 방법

어떤 독자를 위한 책인가?


이 책의 독자가 자바스크립트의 기본 지식은 있다고 가정했다. 자바스크립트 언어와 관련한 훌륭한 책이 있고, 온라인에도 방대한 자료가 있으므로 이 책에서는 자바스크립트 언어 자체에 대한 설명은 하지 않는다. 또한 독자가 자바, 루비, 파이썬, 자바스크립트 등에서 일반적으로 사용하는 객체 지향 프로그래밍을 실무에 적용할 수 있을 정도의 지식이 있다고 가정했다. 객체 지향 프로그래밍 지식이 있다면 필자가 제공하는 정보를 좀 더 매끄럽게 받아들일 수 있겠
지만 꼭 전문적인 객체 지향 프로그래밍 지식이 필요하진 않다. 이 책은 오랫동안 자바스크립트를 해왔지만 함수형 프로그래밍에 대해 알고 싶어 하는 프로그래머 또는 오랫동안 함수형 프로그램을 해왔으면서 자바스크립트를 배우고자 하는 프로그래머에게 가장 이상적이다. 후자의 경우에는 이 책을 메인으로 삼아 공부하기보다는 자바스크립트의 특이한 사항에 초점을 맞춘 부가적인 책으로 활용하길 권한다.


추천사


"이 책은 퍼즐 조각을 하나씩 끼워 맞추듯 함수형 프로그래밍을 설명한다. 자바스크립트를 함수형 프로그래밍 방법으로 사용해야 하는 당위성 및 장점과 단점을 명쾌한 예제로 설명한다. 처음 읽으면 고개를 갸우뚱거리게 되지만, 두 번 읽으면 '아!'라는 감탄사를 연발할 수 밖에 없다."
- 정경석,『이것이 레디스다』 저자


"당신은 함수형이라는 흥미로운 영역을 탐험하는 멋진 책을 읽고 있다. 우리의 친절한 여행 가이드이자 미친 레지던트 과학자인 마이클 포거스는 아홉 개의 장과 두 개의 부록을 통해서 함수형 프로그래밍을 잘게 부수기도 하며, 그들을 다시 조립해서 어떻게 저런 일이 가능할까 싶을 정도의 멋진 작품으로 함수형 프로그래밍의 활용 방법을 보여 주고 있다. 독자를 놀래는 프로그래밍 책은 드물다. 그러나 이 책은 분명 당신을 놀랠 것이다!"
- 제레미 애쉬케나스 Jeremy Ashkenas, CoffeeScript 언어, Backbone.js 프레임워크, Underscore.js 라이브러리 창시자


"더글라스 크락포드의 멋진 책 『자바스크립트 핵심 가이드』를 읽었을 때가 기억난다. 그 책을 읽고 유용한 정보를 얻었을 뿐 아니라 자바스크립트의 단점을 피하는 방법을 고작 172쪽으로 설명했다는 점에 감명을 받았다. 사실, 정보를 제공할 때 간결함은 교육적인 면에서는 그리 좋지 않다. 그런데 크락포드처럼 간결함으로 어떤 정보를 성공적으로 제공할 수 있다면 독자는 저자의 권고를 더 완벽하게 소화하여 결과적으로 더 많은 이익을 얻게 된다. 이 책을 읽어 보면 마이클 포거스도 크락포드만큼 혹은 그 이상으로 훌륭한 책을 집필했음을 알 수 있다. 마이클 포거스는 크락포드를 포함한 기존의 전문가들의 훌륭한 조언을 받아들이면서 함수형 자바스크립트 프로그래밍 세계로 독자를 깊숙이 인도한다."
- 스티브 비노스키Steve Vinoski, 『Advanced CORBA? Programming with C++』 저자, IEEE 시니어 멤버


"마이클 포거스는 함수형 자바스크립트 프로그래밍을 자세하고 실용적으로 설명한다. 또한 소개하는 개념을 Underscore.js 툴킷과 결합해 실용적인 예제로 설명한다. 설명과 예제를 통해 간결하고, 멋지고, 탄탄한 자바스크립트를 개발하는 방법을 제시한다." 
- 딘 왐플러 Dean Wampler, 『Programming Scala』 저자


"이 책에 다른 제목을 붙인다면 '자바스크립트 핵심 공략'이라고 할 수 있다. 이 책에서 설명하는 함수형 개념을 자바스크립트에 적용한다면 자바스크립트를 이용해 문제에 접근하는 방법이 달라질 것이다."
- 롭 프리셀 Rob Friesel,Dealer.com UI 개발자

저자

목차

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. 참고문헌

리뷰

전체 평점

5

오탈자

  • 종이책229P1

    기술 오류

    두번째 소스

    2018-02-19
  • 종이책226P1

    기술 오류

    첫번째 소스

    2018-02-19

22,000

10%

19,800