1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

함수형 자바스크립트 입문 2/E(프로그래밍 언어)
저자 : 안토아라빈스,스리칸스마치라주 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 이창화

2020.02.26 ㅣ 340p ㅣ ISBN-13 : 9791161753997

정가30,000
판매가28,500(5% 할인)
적립금 1,200원 (4%)
배송일정 04월 23일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 인터넷 > 홈페이지언어(HTM...
자바스크립트를 함수형 패러다임으로 소개한다. underscore.js와 유사한 함수형 라이브러리를 만들면서 함수형 프로그래밍을 이해한다. 함수형 패러다임의 기초인 1급 함수, 고차 함수, 커링, 클로저 등을 ES8의 최신 버전으로 알아본다. 합성 함수를 자세히 배우고, 함수자와 모나드도 알아본다. async와 await 등과 같이 ES8에서 제공되는 새로운 특성을 여러 함수와 함께 배워본다. 마지막으로 함수형 자바스크립트 단위 테스팅과 프레임워크를 소개한다.

펼쳐보기

[목 차]

1장. 간단하게 살펴보는 함수형 프로그래밍
__함수형 프로그래밍이란 무엇이고, 왜 중요한가?
__참조적 투명성
__명령형, 선언형, 추상화
__함수형 프로그래밍의 장점
__순수 함수
____순수 함수는 테스트하기 편한 코드다
____이상적 코드
____병렬 코드
____캐시 가능
____파이프라인과 컴포저블
__순수 함수는 수학적인 함수다
__작업해야 할 것
__자바스크립트는 함수형 프로그래밍 언어인가?
__요약

2장. 자바스크립트 함수의 기본
__ECMAScript 역사
__함수 생성과 실행
____첫 번째 함수
____엄격한 방식
____상태 반환은 옵션이다
____다양한 상태 함수
____함수 인자
____ES5 함수는 ES6 이후에서도 동작한다
__프로젝트 구성
____초기 구성
____반복 문제에 대한 첫 번째 함수적 접근
____출력
____입력
____바벨-노드를 사용한 코드 실행
____npm에서 스크립트 작성
____깃을 이용한 코드 실행
__요약

3장. 고차 함수
__데이터의 이해
____자바스크립트 데이터형 이해
____함수 저장
____함수 전달
____함수 반환
__추상화와 고차 함수
____추상화 정의
____고차 함수를 통한 추상화
__현실에서의 고차 함수
____every 함수
____some 함수
____sort 함수
__요약

4장. 클로저와 고차 함수
__클로저 이해
____클로저란?
____어디서부터 생겨났을까?
____sortBy 함수 다시 살펴보기
__실제 세계에서의 고차 함수(계속)
____tap 함수
____unary 함수
____once 함수
____memoize 함수
____assign 함수
__요약

5장. 배열로 함수형 다루기
__배열로 함수형 다루기
____map
____filter
__연산 연결
____concatAll
__함수 축소
____reduce 함수
__함수 압축
____zip 함수
__요약

6장. 커링과 부분 적용
__용어 정리
____단항 함수
____이항 함수
____가변 인자 함수
__커링
____커링을 사용하는 경우
____커링을 사용한 logger 함수
____커링 다시 살펴보기
____다시 logger 함수로
__커링의 실제 사용
____배열 요소에서 숫자 검색
____배열 제곱
__데이터 플로우
____부분 적용
____부분 함수 구현
____커링과 부분 적용
__요약

7장. 컴포지션과 파이프라인
__일반적인 용어에서의 컴포지션
____유닉스 철학
__함수형 컴포지션
____map, filter 다시 살펴보기
____compose 함수
__compose 함수 다루기
____구원자: curry와 partial
____여러 함수 합성
__파이프라인과 시퀀스
____파이프 구현
____컴포지션의 특이점
____파이프라인 연산자
____tap 함수를 사용한 디버깅
__요약

8장. 함수자
__함수자란?
____함수자는 컨테이너다
____map 구현
__MayBe
____MayBe 구현
____간단한 사용자 케이스
____실제 사용자 케이스
__Either 함수자
____Either 구현
____Reddit 예제 Either 버전
__주의할 단어: 포인팅된 함수자
__요약

9장. 모나드
__검색 쿼리용 Reddit 댓글 가져오기
__문제
____첫 번째 단계 구현
____Reddit 호출 병합
____중첩된/다양한 map의 문제
__join으로 문제 해결
____join 구현
____chain 구현
____모나드란?
__요약

10장. 제너레이터를 통한 정지, 재개, 비동기
__비동기 코드와 그 문제
____콜백 지옥
__제너레이터 101
____제너레이터 생성
____제너레이터의 경고
____yield 키워드
____제너레이터의 done 속성
____제너레이터에 데이터 전달
__비동기 호출 조작에 제너레이터 사용
____비동기용 제너레이터: 간단한 경우
____비동기를 위한 제너레이터: 실세계 경우
__ECMAScript 2017의 비동기 함수
____Promise
____await
____async
____콜백 연결하기
____비동기 호출에서 에러 핸들링
____제너레이터로 트랜스파일된 비동기 함수
__요약

11장. 반응형 라이브러리 빌드
__불변성
__간단한 Redux 라이브러리 빌드
__HyperApp과 같은 프레임워크 구성
____가상 DOM
____JSX
____JS Fiddle
____createActions
____render
____patch
____update
____merge
____remove
____요약

12장. 테스트와 마무리
__소개
__테스팅의 종류
__BDD와 TDD
__자바스크립트 테스트 프레임워크
____Mocha를 사용한 테스팅
____Sinon을 사용한 모의 테스트
____Jasmine을 통한 테스팅
__코드 커버리지
__Linting
__라이브러리 코드 단위 테스팅
__마무리
__요약

펼쳐보기
★ 이 책에서 다루는 내용 ★

■ 문자열 패딩, 비동기 함수와 같은 함수형 프로그래밍 개념
■ 자바스크립트에서 함수를 다루는 방법
■ underscore.js와 유사한 함수형 라이브러리 작성
■ 스프레드 연산자나 제너레이터와 같은 ES8 함수형 특성
■ 함수형 패러다임에 따라 React-Redux 패턴처럼 동작하는 라이브러리 작성

★ 이 책의 구성 ★

함수형 프로그래밍 개념과 자바스크립트 언어의 함수형 본질을 이해할 수 있도록 돕는다. 함수형 프로그래밍 개념을 소개하는 것부터 시작해서 선언형과 함수형 프로그래밍의 핵심적인 차이점을 알아본다. 자바스크립트 함수를 직접 파고들며 ES8로 작성하는 방법을 배운다. 이후 고차 함수로 이동해 ‘데이터로서의 함수'가 어떻게 가능성의 세계를 여는지 살펴본다.
그런 다음 클로저로 고차 함수를 작성한다. 배열을 소개하고 함께 사용할 수 있는 API를 소개한다. 커링과 부분 적용을 사용해 특정 함수를 다른 함수로 바꾸는 방법을 살펴본다. 합성 함수를 자세히 다루고 함수자와 모나드도 알아본다. 응용할 수 있는 함수를 자세히 알아본 후, async와 await처럼 ES8에서 제공하는 새로운 특성을 알아본다. 이 책에서 배운 함수형 개념을 사용해 HTML 애플리케이션을 구성하는 데 사용할 수 있는 작은 라이브러리를 작성한다. 마지막으로 함수형 자바스크립트의 단위 테스팅 개념과 프레임워크, 도구를 소개한다.
이 책에서는 함수형 툴킷을 사용해 웹 애플리케이션 개발에 필요한 작은 라이브러리를 구성하는 방법과 함수형 코드를 테스트하는 방법을 알아본다.

★ 옮긴이의 말 ★

프로그래밍 방법론과 패러다임이 많이 발전하고 있습니다. 기계어, 어셈블리어가 나오면서 가장 먼저 나온 패러다임이 명령형 프로그래밍입니다. 많은 사람에게 가장 익숙한 형태일 것입니다. 명령형 프로그래밍은 절차형과 객체지향형으로 나뉠 수 있습니다. 코드 순서대로 실행되는 절차형과 클래스란 개념을 가져오는 객체지향형은 C, C++, 자바 등에서 쉽게 찾아볼 수 있습니다.
명령형 프로그래밍과 대조되는 함수형 프로그래밍은 선언형 프로그래밍으로, 어떤 것을 실행할지에 초점이 맞춰져 있습니다. 문법과 언어에 초점이 맞춰진 명령형 패러다임과 달리 함수형 프로그래밍은 함수의 구성에 초점 맞춰져 있습니다.
함수형 프로그래밍은 우리가 배웠던 수학의 함수 개념으로 계산에 접근합니다. 여러 함수를 중첩 사용하기 때문에 함수의 내부를 알지 못하더라도 쉽게 사용할 수 있습니다. 이때 필요한 개념에는 여러 가지가 있습니다. 먼저 순수 함수(pure function)란 동일한 입력에 항상 동일한 출력을 보이는 함수로, 입력과 출력을 매핑시켜 호출하는 쪽과 순수 함수의 통신이 가능합니다. 자세한 사항은 1장에서 다룹니다. 함수 중첩을 통해 여러 함수를 하나의 동작으로 묶을 수 있습니다. 이런 것이 가능한 함수를 고차 함수(high order function)라고 합니다. 고차 함수는 2장부터 자세히 다룹니다. 이렇듯 함수형 프로그래밍은 라이브러리만 잘 구축한다면 코드를 굉장히 간결하고 이해하기 쉽게 만들 수 있는 장점이 있습니다. 메소드에 진입할 때 사용하는 . 기호를 사용하거나 괄호의 개수를 줄이는 등 코드 가독성을 높이고 수준 높은 프로그래밍을 할 수 있습니다.
자바스크립트 언어 자체가 웹 프로그래밍 영역에서는 거의 필수적으로 사용되는 언어입니다. 좋은 프로그래밍 언어를 평가하는 기준에는 사용성, 확장성, 성능, 변경 유용성 등이 있습니다. 함수형 프로그래밍은 언어 내의 조합성을 강조한 프로그래밍으로, 사용성 부분은 떨어질 수 있습니다. 하지만 함수형 프로그래밍 개념을 익히면 조합성과 모듈성이 높아져 결국은 코드의 오류가 줄어들게 되고, 모듈화가 잘된 코드는 효율적으로 수정과 디버깅이 가능합니다.
함수형 프로그래밍을 처음 접한다면 이 책을 처음 보는 순간, 프로그래밍 언어를 새로 배우는 느낌이 들 것입니다. 처음 언어를 배울 때 어렵고 시간이 걸리지만 점점 익숙해지듯이 함수형 프로그래밍도 자바스크립트뿐만 아니라 파이썬 등의 다양한 언어로 개념을 다진다면 어떠한 프로그래밍 언어도 쉽게 넘나들 수 있는 개발자가 될 거라고 생각합니다. 1장부터는 함수형 프로그래밍의 실용성과 효율성, 모듈성에 대해 배우며, 8, 9장에서는 함수자와 모나드의 개념을, 10장에서는 ECMAScript 8에서 새로 명시된 async와 await를 배웁니다. 마지막으로 함수형 프로그래밍 테스트까지 전반적인 함수형 프로그래밍 기초 개념과 필요한 라이브러리 구축 등을 배웁니다. 전체 코드는 바벨 노드(babel-node) 기반으로 실행돼 코드 확인이 간편합니다. 자세한 실행 방법은 2장에서 살펴볼 수 있습니다. 직접 코드 수정을 거친 만큼 이 책을 통해 함수형 프로그래밍과 좀 더 친해지길 바랍니다.

펼쳐보기
안토 아라빈스(Anto Aravinth)
소프트웨어 회사에서 6년 이상 근무했다. 최신 기술로 작성된 여러 시스템을 개발한 경력이 있다. 자바스크립트에 대한 기본 지식과 작동 방법을 알고 여러 사람을 가르치는 방법을 잘 알고 있다. 시간이 남을 때는 오픈소스 소프트웨어를 다루거나 탁구를 한다.

스리칸스 마치라주(Srikanth Machiraju)
개발자, 아키텍처, 기술 교육자, 커뮤니티 발표자로 활동한지 10년이 넘었다. 현재 100명의 개발자를 이끌고, 마이크로소프트 Hyderabad의 선임 컨설턴트이자 정유사 내의 클라우드 기반 플랫폼을 개발하는 품질 분석가다. 지능이 있는 방대한 현대 애플리케이션을 디자인할 수 있는 기업 아키텍처가 되겠다는 목표로, 에지 플랫폼과 기술을 사용해 현대 애플리케이션 개발을 배우고 공유하고 있다. 마이크로소프트사 근무 이전에 브레인스케일(BrainScale)에서 애플리케이션 디자인, 개발, 애저(Azure)를 사용한 통합을 다루는 선임 기술 분석가 및 협력 교육자로 일했 다. 새로운 기술을 받아들이는 데 많은 열정이 있는 기술 개발자로, 블로그와 커뮤니티를 통해 습득한 기술을 공유하고 있다.
블로그(https://vishwanathsrikanth.wordpress.com)에 나와 있듯이 『Learning Windows Server Containers』(Packt, 2017)와 『Developing Bots with Microsoft Bot Framework』(Apress, 2017)의 저자다.
“Tech Talk with Sriks”라는 유튜브 채널을 운영 중이며, 링크드인(https://www.linkedin.com/in/vishsrik/)에서도 만나볼 수 있다.


옮긴이 이창화
경북대학교에서 기계공학 및 컴퓨터공학을 전공하고 있으며, 여러 방면의 공학 기술과학문에 관심이 많다. 대학 입학 전 프로그래밍에 관심을 갖기 시작한 후부터 C, 파이썬, 웹 언어, 오픈소스 임베디드 개발을 하게 됐다. 최근에는 머신 러닝과 딥러닝에 관련해 공부하고 있으며, 관련 도서를 찾고 읽는 데 푹 빠져 있다. 회사에 연연하지 않고 원하는 일과 연구에 몰입할 수 있는 라이프를 추구한다. 옮긴 책으로 『파이썬을 이용한 데이터 분석』(에이콘, 2018)이 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

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

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기