청구할인 안내(인터파크 제휴카드) | 안내
삼성카드 5% (3만원 이상 결제/최대 1만원 할인)
북피니언 롯데카드 30% (최대할인 3만원 / 3만원 이상 결제)
하나SK 북&카드 30% (최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (최대할인 3만원 / 3만원 이상 결제)
Close

2013년 9월 9일 이후 누적수치입니다.

함수형 자바스크립트 프로그래밍

판매지수 1,519
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
  • 저 : 유인동
  • 출판사 : 인사이트
  • 발행 : 2017년 11월 22일
  • 쪽수 : 388
  • 제품구성 : 전1권
  • ISBN : 9788966262120
정가

29,000원

  • 26,100 (10%할인)

    1,450P (5%적립)

  • 이 도서의 최대 매입가

    10,440

    인터파크에 판매하기
  • 이벤트/기획전

  • 연관도서

  • 사은품(3)

책소개

[함수형 자바스크립트 프로그래밍]은 자바스크립트에서 함수형 패러다임을 통해 보다 효율적인 코드를 만들고자 하는 개발자를 위한 실무 밀착형 가이드다. 이 책은 함수형 자바스크립트 프로그래밍을 위한 문법과 개념을 단순히 소개하지 않는다. 책 전반에 걸쳐 함수의 응용을 매우 깊이 다루며, 실용적인 접근을 항상 함께한다. 우선 함수형 패러다임을 잘 보여주는 라이브러리인 Underscore.js를 직접 구현해 보면서 함수적인 기법들이 얼마나 유용한지를 몸소 느낄 수 있도록 한다. 또한 함수형 프로그래밍의 완성도를 높이기 위해 저자가 직접 개발한 Partial.js 라이브러리를 통해 함수의 조합, 연속성, 순수 함수, 고차 함수, 불변성, 비동기, 동시성 등을 설명해서 보다 '개발자스럽게' 함수형 자바스크립트 프로그래밍에 접근한다. 이 책은 익숙한 개발 방식에서 벗어나 기존 코드를 어떻게 함수형으로 바꿀 수 있는지를 보여주면서 독자에게 '함수형 패러다임'이 적용된 코딩 스타일과 콘셉트를 전달한다.

추천사

이 책은 자바스크립트의 특징을 깊이 있게 설명하고 있다. 라이브러리에 대한 단순한 사용법에 그치는 것이 아니고 함수형 프로그래밍으로 어떤 상황을 쉽게 해결할 수 있는지, 나아가 어떻게 프로그래밍 API 디자인을 하는 것이 좋은지도 알게 된다.
- 윤지수 / 코드스쿼드

이 책은 함수형 패러다임을 익히기 위해서 알아야 하는 개념을 빠짐없이 담아 내면서 동시에 실용적이고 깊이 있는 코드까지 포함시켰다. 심지어 자바스크립트 언어를 사용해서.
- 임백준 / 나는 프로그래머다 MC

목차

1장 함수형 자바스크립트 소개
1.1 함수형 프로그래밍 그거 먹는 건가요?
- 1.1.1 함수형 자바스크립트를 검색하면 나오는 예제
- 1.1.2 값으로써의 함수와 클로저
1.2 함수형 자바스크립트의 실용성
- 1.2.1 회원 목록 중 여러 명 찾기
- 1.2.2 for에서 filter로, if에서 predicate로
- 1.2.3 함수형 프로그래밍 관점으로 filter 보기
- 1.2.4 map 함수
- 1.2.5 실행 결과로 바로 실행하기
- 1.2.6 함수를 값으로 다룬 예제의 실용성
1.3 함수형 자바스크립트의 실용성 2
- 1.3.1 회원 목록 중 한 명 찾기
- 1.3.2 값에서 함수로
- 1.3.3 함수를 만드는 함수와 find, filter 조합하기
- 1.3.4 고차 함수
- 1.3.5 function identity(v) { return v; }, 이건 어디다 쓰는 거지?
- 1.3.6 연산자 대신 함수로
- 1.3.7 함수 합성
1.4 함수형 자바스크립트를 위한 기초
- 1.4.1 일급 함수
- 1.4.2 클로저
- 1.4.3 클로저의 실용 사례
- 1.4.4 클로저를 많이 사용하라!
- 1.4.5 고차 함수
- 1.4.6 콜백 함수라 잘못 불리는 보조 함수
- 1.4.7 함수를 리턴하는 함수와 부분 적용
1.5 정리

2장 함수형 자바스크립트를 위한 문법 다시 보기
2.1 객체와 대괄호 다시 보기
- 2.1.1 난해해 보이는 문법들을 확인하는 목적
- 2.1.2 객체와 key
- 2.1.3 함수나 배열에 달기
- 2.1.4 delete
- 2.1.5 코드가 실행될 수 있는 영역
2.2 함수 정의 다시 보기
- 2.2.1 기본 정의
- 2.2.2 호이스팅
- 2.2.3 호이스팅 활용하기
- 2.2.4 괄호 없이 즉시 실행하기
- 2.2.5 new Function이나 eval을 써도 될까요?
- 2.2.6 간단 버전 문자열 화살표 함수와 new Function 성능
- 2.2.7 유명(named) 함수
- 2.2.8 유명 함수를 이용한 재귀
- 2.2.9 자바스크립트에서 재귀의 아쉬움
2.3 함수 실행과 인자 그리고 점 다시 보기
- 2.3.1 ( ) 다시 보기
- 2.3.2 인자 다시 보기
- 2.3.3 this 다시 보기
- 2.3.4 call, apply 다시 보기
- 2.3.5 call의 실용적 사례
2.4 if else || && 삼항 연산자 다시 보기
- 2.4.1 if의 괄호
- 2.4.2 || &&
- 2.4.3 삼항 연산자
2.5 함수 실행의 괄호
- 2.5.1 함수 실행을 통해 생기는 새로운 공간
- 2.5.2 기본적인 비동기 상황
- 2.5.3 함수 실행 괄호의 마법과 비동기
- 2.5.4 비동기와 재귀
2.6 화살표 함수
- 2.6.1 익명 함수와의 문법 비교
- 2.6.2 익명 함수와의 기능 비교
- 2.6.3 화살표 함수의 실용 사례
- 2.6.4 화살표 함수 재귀
2.7 정리

3장 Underscore.js를 직접 만들며 함수형 자바스크립트의 뼈대 익히기
3.1 Underscore.js 소개
- 3.1.1 Underscore.js 간단히 써보기
- 3.1.2 Underscore.js vs. Lodash
- 3.1.3 지연 평가 1 (take)
- 3.1.4 지연 평가 2 (map-]map-]map)
- 3.1.5 지연 실행
- 3.1.6 함수형 프로그래밍 관점에서의 each
- 3.1.7 지원 환경, 용량, 추가 기능 비교
- 3.1.8 Underscore.js와 Lodash 비교 정리
- 3.1.9 Underscore.js를 만드는 이유
3.2 _.map과 _.each 구현하기
- 3.2.1 ArrayLike와 Underscore.js의 콘셉트
- 3.2.2 _.map 만들기
- 3.2.3 쓸모 없어 보이는 함수 사용하기
- 3.2.4 _.each 만들기
- 3.2.5 함수로 함수 만들기, bloop
- 3.2.6 Object.keys
- 3.2.7 bloop 개선하기
- 3.2.8 중간 정리
3.3 _.filter, _.reject, _.find, _.some, _.every 만들기
- 3.3.1 _.filter 만들기
- 3.3.2 bloop로 _.filter 만들기
- 3.3.3 _.rest, _.toArray, _.reverse, _.if
- 3.3.4 익명 함수 없이 bloop로 _.filter 만들기
- 3.3.5 _.reject 만들기
- 3.3.6 _.find, _.some, _.every를 만들기 위해 bloop 고치기
- 3.3.7 _.find 만들기
- 3.3.8 _.findIndex, _.findKey 만들기
- 3.3.9 _.some, _.every 만들기
- 3.3.10 함수형 프로그래밍에서 함수는 '로직'이다!
3.4 _.reduce 만들기
- 3.4.1 _.reduce 소개
- 3.4.2 _.reduce의 용도
- 3.4.3 _.reduce로 회원 데이터 집계하기
- 3.4.4 _.reduce 만들기
- 3.4.5 bloop 반으로 줄이기
3.5 좀 더 발전시키기
- 3.5.1 _.filter 중간에 나가기
- 3.5.2 코드 양과 성능

4장 함수 조립하기
4.1 고차 함수와 보조 함수
- 4.1.1 한 번만 실행하는 함수
- 4.1.2 다시 물어 보지 않는 함수
- 4.1.3 앞서 받은 인자 혹은 상황을 변경해 나가는 경우
- 4.1.4 앞서 받은 인자를 잘 유지해야 하는 경우
4.2 부분 적용
- 4.2.1 _.partial로 함수 만들기
- 4.2.2 _.partial과 _.compose로 함수 만들기
- 4.2.3 더 나은 _.partial 함수
4.3 연속적인 함수 실행
- 4.3.1 체인의 아쉬운 점
- 4.3.2 _.compose의 아쉬운 점
- 4.3.3 파이프라인
- 4.3.4 클래스를 대신하는 파이프라인
- 4.3.5 더 나은 파이프라인, 그리고 Multiple Results
4.4 더 나은 함수 조립
- 4.4.1 함수 조립과 Partial.js
- 4.4.2 Partial.js의 _.pipe
- 4.4.3 즉시 실행 파이프라인 _.go
- 4.4.4 문자열 화살표 함수
- 4.4.5 Partial.js의 _.partial
- 4.4.6 Partial.js의 부분 커링

5장 Partial.js와 함수 조립
5.1 파이프라인
- 5.1.1 네임스페이스
- 5.1.2 즉시 실행 파이프라인, _.go와 _.mr
- 5.1.3 함수를 만드는 파이프라인 _.pipe
- 5.1.4 부분 커링 함수와의 조합
- 5.1.5 보조 함수로 사용하는 파이프라인
- 5.1.6 비동기와 _.go
- 5.1.7 중간에 멈추고 나가기
5.2 비동기
- 5.2.1 코드 변경 없이 비동기 제어가 되는 고차 함수
- 5.2.2 비동기 결과를 기다리는 if문, _.if
5.3 고차 함수
- 5.3.1 주요 고차 함수의 보조 함수에서 더 많은 인자 사용하기
- 5.3.2 _.all, _.spread
5.4 파이프라인2
- 5.4.1 _.go에서 this 사용
- 5.4.2 또 다른 파이프라인, _.indent
- 5.4.3 _, _ _, _ _ _
- 5.4.4 무조건 비동기로 동작하는 _.async
- 5.4.5 _.go에서 비동기 제어 건너뛰기
5.5 템플릿 함수
- 5.5.1 함수 스타일의 템플릿 함수
- 5.5.2 Jade(Pug) 스타일 문법 지원
- 5.5.3 데이터 치환
- 5.5.4 일반 HTML 전용 _.string
- 5.5.5 인자 여러 개 받기
- 5.5.6 escape
- 5.5.7 코드 실행
- 5.5.8 _.sum
- 5.5.9 비동기 제어
5.6 지연 평가와 컬렉션 중심 프로그래밍
- 5.6.1 지연 평가
- 5.6.2 Lodash의 체인 방식 지연 평가가 아쉬운 이유
- 5.6.3 지연 평가 결정의 기준과 L
- 5.6.4 컬렉션 중심 프로그래밍
- 5.6.5 수집하기와 거르기
- 5.6.6 접기
- 5.6.7 찾아내기
- 5.6.8 3가지 유형(수집하기, 거르기, 찾아내기)과 지연 평가와의 연관성
- 5.6.9 더 나은 지연 평가
- 5.6.10 지연 평가의 동작 조건을 동적으로 하기
- 5.6.11 Partial.js

6장 값에 대해
6.1 순수 함수
- 6.1.1 순수 함수와 부수 효과
- 6.1.2 순수 함수와 순수 함수가 아닌 함수
6.2 변경 최소화와 불변 객체
- 6.2.1 직접 변경하는 대신, 변경된 새로운 값을 만드는 전략: _.sortBy, _.reject, _.pluck, _.initial, _.without
- 6.2.2 _.clone으로 복사하기
- 6.2.3 _.extend, _.defaults로 복사하기
- 6.2.4 불변 객체, 그리고 immutable.js의 훌륭한 점
- 6.2.5 immutable.js의 아쉬운 점
- 6.2.6 Model/Collection 류의 커스텀 객체들의 아쉬운 점
6.3 기본 객체 다루기
- 6.3.1 _.sel과 JSON Selector로 중첩 구조 데이터 다루기
- 6.3.2 JSON Selector를 이용한 값 변경
- 6.3.3 커스텀 객체 vs 기본 객체
- 6.3.4 _.set, _.unset, _.remove2, _.pop, _.shift, _.push, _.unshift
- 6.3.5 _.set을 통한 값 변경을 함수로 하기
- 6.3.6 깊은 값 꺼내기: _.deep_pluck
6.4 정리

7장 실전에서 함수형 자바스크립트 더 많이 사용하기
7.1 _.each, _.map
- 7.1.1 if 대신 _.each 사용하기
- 7.1.2 선택된 항목들 지우기와 _.map
- 7.1.3 SQL의 insert문 만들기와 _.map
- 7.1.4 그룹 채팅 초대와 _.map
- 7.1.5 함수 고르기
- 7.1.6 많은 사람들이 기본 객체와 함수 중심으로 프로그래밍을 한다면
7.2 input tag들을 통해 form data 만들기
- 7.2.1 _.reduce로 만들기
- 7.2.2 여러 가지 함수로 함수 조합 연습해 보기
7.3 커머스 서비스 코드 조각
- 7.3.1 장바구니에 담기 옵션 선택과 _.find
- 7.3.2 _.find_where
- 7.3.3 장바구니에 담긴 상품들의 수량 합산하기와 _.reduce
- 7.3.4 장바구니에 담긴 상품들의 금액 합산하기와 _.reduce
- 7.3.5 다른 함수 조합으로 수량 합산 구하기 _.deep_pluck, _.reduce
7.4 백엔드와 비동기
- 7.4.1 백엔드에서 만날 수 있는 다양한 비동기 상황
- 7.4.2 순서대로 하나씩 실행하기
- 7.4.3 실행한 후의 결과 담기
- 7.4.4 true를 만나면 그만 돌기
- 7.4.5 _.if _.some, _.every 조합하기
- 7.4.6 _.loop와 _.break
- 7.4.7 async await 그리고 Babel은 모든 비동기 상황의 해결책일까?
- 7.4.8 async await를 for문과 if문에서 사용하기
- 7.4.9 async await의 한계
- 7.4.10 함수를 값으로 다루는 고차 함수의 해법

8장 함수형으로 만드는 할 일 앱
8.1 할 일 앱 만들기(1)
- 8.1.1 할 일 생성하기
- 8.1.2 체크박스와 삭제 버튼
- 8.1.3 앱의 상태 관리를 위한 데이터 추가
- 8.1.4 필터링 기능 추가하기
- 8.1.5 한 일 모두 삭제하기
8.2 할 일 앱 만들기(2)
- 8.2.1 카운트 정보 표시하기

9장 메모이제이션
9.1 memoize 함수
- 9.1.1 메모이제이션 코드로 이해하기
- 9.1.2 Underscore.js의 _.memoize
- 9.1.3 Partial.js의 _.memoize2
- 9.1.4 _.memoize2 내부와 JSON.stringify
9.2 메모이제이션과 불변성, 그리고 할 일 앱
- 9.2.1 할 일 앱에 _.memoize2 적용시키기
- 9.2.2 최종 코드
9.3 마무리 하며
- 9.3.1 인프런(Inflearn) 동영상 강의 : 자바스크립트로 알아보는 함수형 프로그래밍
- 9.3.2 몇 가지 프로젝트 소개
- 9.3.3 문의

저자소개

생년월일 -
출생지 -
출간도서 1종
판매수 11권

마켓프레스에서 커스텀 티셔츠 서비스 마플(http://www.marpple.com)을 만들고 있다. 마켓프레스에서는 HTML, CSS, JavaScript, Node.js, PostgreSQL, AWS를 주로 다루고 있다. 어쿠스틱코드, 카카오, 엔씨소프트 오픈마루 스튜디오, 시도우, 하자센터에서 웹 서비스, 아이폰 앱, 안드로이드 앱 등을 개발했다. Objective-C와 iOS SDK, Java와 Android SDK의 매력에 빠져 객체지향 프로그래밍을 파고들다가, 지금은 함수형 프로그래밍의 매력에 빠져 있다. 다양한 기술과 언어들을 탐구하는 것을 좋아하고 최근에는 함수형 자바스크립트 라이브러리인 Partial.js를 만들

펼쳐보기

리뷰

10.0 (총 0건)

기대평

작성시 유의사항

평점
0/200자
등록하기

기대평

0.0

교환/환불

교환/환불 방법

‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

교환/환불 가능 기간

고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

교환/환불 비용

고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

교환/환불 불가사유

반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

소비자 피해보상

소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

기타

도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

배송안내

  • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

  • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

  • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

  • 배송비

도서(중고도서 포함) 구매

2,000원 (1만원이상 구매 시 무료배송)

음반/DVD/잡지/만화 구매

2,000원 (2만원이상 구매 시 무료배송)

도서와 음반/DVD/잡지/만화/
중고직배송상품을 함께 구매

2,000원 (1만원이상 구매 시 무료배송)

업체직접배송상품 구매

업체별 상이한 배송비 적용