본문내용 바로가기
MD의선택 무료배송 이벤트 사은품 경품

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

유인동 지음 | 인사이트 | 2017년 11월 24일 출간

이 책의 다른 상품 정보

  • 정가 : 29,000원
    판매가 : 26,100 [10%↓ 2,900원 할인]
  • 제휴할인가 : 19,570 교보-롯데카드 최대 25% 청구할인 카드/포인트 안내
  • 통합포인트 :
    [기본적립] 1,450원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 5만원 이상 구매 시 2~3% 추가적립
  • 추가혜택 :
    naver네이버페이 결제 시 무조건 1% 추가 적립 payco페이코 결제 시 최대 1만원 적립 okcashbag 실 결제 금액의 0.5% 적립 안내
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(16일,토) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 영업점에서 직접 수령 안내
행사도서 포함, 5만원이상 구매시 2018년 캘린더 증정
닫기
  • 나만의 경쟁력, 동양고전 김원중 명품고전 독서대 증정
  • 비모 벽시계
  • 자기계발:버리거나 혹은 얻거나
  • 경제경영 메인이벤트
  • 예비초등학생 추천도서전

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 올해의 IT도서 트렌드, 영예의 주인공은 어떤 책일까요?
    2017.11.28 ~ 2017.12.31
  • 인사이트 출판사의 IT전문서를 편리하게 모아 보세요
    2017.11.22 ~ 2019.12.31
  • #리드잇 페이스북 페이지 팔로우 하시고, 신간소식 빠르게 받아보..
    2017.06.22 ~ 2025.07.31
  • 설문참여 시 매월 5명 추첨통해 선물을 드립니다.
    10. 14 ~ 12. 31
상품상세정보
ISBN 9788966262120(8966262120)
쪽수 388쪽
크기 189 * 242 * 22 mm /738g 판형알림

책소개

이 책이 속한 분야

실무 밀착형, 함수형 자바스크립트 프로그래밍 가이드!

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

이 책은 가독성을 높이기 위해 코드 부분을 컬러로 제작했으며, 보다 나은 학습 환경을 제공하기 위해 책과 함께 보면 좋은 동영상 강의를 인프런을 통해 제공한다(https://www.inflearn.com/course/함수형-프로그래밍/). 책에 실린 모든 예제 코드는 책의 깃허브(https://github.com/indongyoo/functional-javascript/)를 통해 확인할 수 있다.

저자소개

저자 : 유인동

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

목차

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 문의 사항

추천사

윤지수(코드스쿼드)

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

임백준(나는 프로그래머다 MC)

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

출판사 서평

『함수형 자바스크립트 프로그래밍』은 자바스크립트에서 함수형 패러다임을 통해 보다 효율적인 코드를 만들고자 하는 개발자를 위한 실무 밀착형 가이드다.
이 책은 함수형 자바스크립트 프로그래밍을 위한 문법과 개념을 단순히 소개하지 않는다. 책 전반에 걸쳐 함수의 응용을 매우 깊이 다루며, 실용적인 접근을 항상 함께한다. 우선 함수형 패러다임을 잘 보여주는 라이브러리인 Underscore.js를 직접 구현해 보면서 함수적인 기법들이 얼마나 유용한지를 몸소 느낄 수 있도록 한다. 또한 함수형 프로그래밍의 완성도를 높이기 위해 저자가 직접 개... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트 적립은 작성 후 다음 날 혹은 해당 도서 출고 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

스토리K 1건의 스토리K가 있습니다.

    교환/반품/품절안내

    ※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

    교환/반품/품절안내
    반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
    [1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

    ※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
        또는 고객센터 (1544-1900)
    반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
    반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    반품/교환 불가 사유
    • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
      (단지 확인을 위한 포장 훼손은 제외)
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
      예) 화장품, 식품, 가전제품(악세서리 포함) 등
    • 복제가 가능한 상품 등의 포장을 훼손한 경우
      예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
      해당되는 경우
    (1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
    상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
    이메일과 문자로 안내드리겠습니다.
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
      소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
      소비자 보호에 관한 법률에 따라 처리함

    이 분야의 베스트

    더보기+

    이 분야의 신간

    더보기+

    바로가기

    • 우측 확장형 배너 2

    최근 본 상품