장바구니 담기 close

장바구니에 상품을 담았습니다.

함수형 자바스크립트

함수형 자바스크립트

  • 마이클 포거스
  • |
  • 한빛미디어
  • |
  • 2014-02-01 출간
  • |
  • 292페이지
  • |
  • 183 X 235 X 20 mm /542g
  • |
  • ISBN 9788968480799
판매가

22,000원

즉시할인가

19,800

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
19,800

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

이 책이 제시하는 핵심 내용

이 책은 자바스크립트를 올바로 사용할 수 있는 방법으로 함수형 프로그래밍 기법을 제시한다. 이 과정에서 Underscore.js를 사용하여 자바스크립트의 가장 큰 걸림돌인 ‘이상한 점’, ‘안전하지 않은 특성’, ‘수많은 경쟁 라이브러리가 있다는 사실’을 극복한다.

* 언더스코어(Underscore.js)란 무엇인가?
함수형 프로그래밍을 지원하는 자바스크립트 라이브러리로써 Prototype.js (또는 루비)에서 제공하는 것과 비슷한 기능을 함수형 프로그래밍용으로 제공한다. 하지만 언더스코어는 자바스크립트 내장 객체를 확장하지 않는다.

어떤 독자를 위한 책인가?

이 책의 독자가 자바스크립트의 기본 지식은 있다고 가정했다. 자바스크립트 언어와 관련한 훌
륭한 책이 있고, 온라인에도 방대한 자료가 있으므로 이 책에서는 자바스크립트 언어 자체에
대한 설명은 하지 않는다. 또한 독자가 자바, 루비, 파이썬, 자바스크립트 등에서 일반적으로
사용하는 객체 지향 프로그래밍을 실무에 적용할 수 있을 정도의 지식이 있다고 가정했다. 객
체 지향 프로그래밍 지식이 있다면 필자가 제공하는 정보를 좀 더 매끄럽게 받아들일 수 있겠
지만 꼭 전문적인 객체 지향 프로그래밍 지식이 필요하진 않다.

이 책은 오랫동안 자바스크립트를 해왔지만 함수형 프로그래밍에 대해 알고 싶어 하는 프로그
래머 또는 오랫동안 함수형 프로그램을 해왔으면서 자바스크립트를 배우고자 하는 프로그래머
에게 가장 이상적이다. 후자의 경우에는 이 책을 메인으로 삼아 공부하기보다는 자바스크립트
의 특이한 사항에 초점을 맞춘 부가적인 책으로 활용하길 권한다.

도서특징

* 혁신적이고 놀라운 자바스크립트 코딩 기법을 만나자!
이 책은 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. 참고문헌

저자소개

저자 마이클 포거스는 분산 시뮬레이션, 머신 비전, 전문가 시스템 구축을 주로 하는 소프트웨어 개발자다. 클로저, Underscore.js 커뮤니티 활동에도 참여하고 있다.

도서소개

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

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.