Top

작고 강력한 Underscore.js [TDD 기법을 이용한 Underscore.js 라이브러리 학습]

  • 원서명Learning Underscore.js (ISBN: 9781784393816)
  • 지은이알렉스 팝(Alex Pop)
  • 옮긴이테크 트랜스 그룹 T4
  • ISBN : 9788960779051
  • 25,000원
  • 2016년 09월 26일 펴냄
  • 페이퍼백 | 260쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/underscorejs)

요약

Underscore.js는 광범위하게 자바스크립트 객체, 배열, 함수 처리에 대한 단순화되고 향상된 기능을 제공한다. 이러한 기능은 자바스크립트에는 없는 함수형 프로그래밍 기능을 제공한다. Underscore.js를 사용하면 자바스크립트 사용성이 좋아지게 되고, 코드 작성이 쉬워지며 일반적인 목적의 프로그래밍 언어와 유사한 수준의 표현이 가능해진다. Underscore.js는 대표적인 자바스크립트 유틸리티 라이브러리 중 하나로 포괄적인 기능을 제공하기보다는 특정 문제에 대한 해결 방안을 제시할 수 있다.

이 책에서 다루는 내용

■ 최신 자바스크립트 개발 워크플로우를 사용해 Underscore.js 함수를 호출하는 방법 및 레퍼런스
■ Underscore.js를 자바스크립트 배열, 객체, 함수에 적용하는 방법
■ Underscore.js를 사용해 객체지향 또는 함수형 프로그래밍 기술을 이용하는 방법
■ 클라이언트, 서버, 데이터베이스 컨텍스트를 대상으로 하는 코드를 생성하기 위해 Underscore.js를 활용하는 방법
■ 다른 관련된 라이브러리를 사용해 Underscore.js의 기능을 확장하는 방법
■ 클라이언트와 서버 애플리케이션 사이에서 Underscore.js 기반 코드를 재사용하는 방법
■ Underscore.js를 통해 ECMAScript2015(ES6) 표준을 사용하는 방법과 기존의 자바스크립트 엔진을 대상으로 표준을 적용하는 방법

이 책의 대상 독자

최신 자바스크립트 라이브러리를 사용해 프로그래밍 기술을 향상시키고자 하는 자바스크립트의 기본 지식을 보유한 개발자를 위한 책이다. Underscore는 개발자라면 친해져야 하는 가장 중요한 라이브러리 중 하나며, 이 책은 기본 지식들을 바탕으로 다양하고 넓은 컨텍스트들을 사용해 우리의 목표를 달성하게 해준다. 이 책은 다음과 같은 모든 사람들과 관련돼 있다.

■ 웹 애플리케이션 개발, 단일 페이지 웹 애플리케이션 개발, 자바스크립트 기반 데스크톱, 모바일, 임베디드 애플리케이션 개발에 관심이 있는 개발자
■ 웹 애플리케이션 또는 웹 서비스를 제공하기 위해 Node.js를 사용하고 싶은 개발자
■ MongoDB 또는 PostgreSQL 같은 데이터베이스를 사용하고, 더불어 자바스크립트도 사용해 개발하려는 개발자

이 책의 구성

1장, ‘Underscore.js 시작하기’에서는 Underscore에 대해 간략히 설명하고, 함수형 프로그래밍에 대한 간단한 설명과 함께 주요 문제점들을 설명한다. 1장에서는 Underscore에 의해 사용되는 콘셉트와 패턴들 또는 Underscore를 사용할 때 도움이 될 내용들을 다룬다. 마지막 파트에서는 시작 예제를 가지고 이 책 내에서 사용될 개발 환경 셋업을 다룬다.

2장, ‘Underscore에서 컬렉션 사용하기’에서는 예제를 사용해 컬렉션에 대한 Underscore 기능을 살펴보고, 영역-범위 해결(areas-scope resolution), 실행 컨텍스트(execution context), 맵/리듀스(map/reduce), 함수형 프로그래밍(functional programming) 콘셉트와 관련된 개념들을 설명한다.

3장, ‘Underscore에서 배열, 객체, 함수 사용하기’에서는 배열, 객체, 함수에 대한 기능을 살펴보고, 2장에서 나타낸 함수와 개념을 만들어본다. ‘함수’ 절에서는 함수의 스코프와 인수들을 어떻게 사용하는지 배우고, 자바스크립트 프로그래밍에서 왜 중요한지를 살펴본다.

4장, ‘Underscore.js에서의 프로그래밍 패러다임’에서는 일반적인 프로그래밍 문제를 해결하기 위해 함수형 프로그래밍의 개념을 확장하고 이 개념에 대한 연습을 수행한다. 객체지향 프로그래밍과 함수형 프로그래밍의 차이점을 다루고, Underscore를 사용한 함수형 프로그래밍의 예를 지속적으로 살펴본다.

5장, ‘서버의 브라우저에서 데이터베이스를 이용한 Underscore.js 사용하기’에서는 Node.js 서버 쪽 애플리케이션 또는 라이브러리와 밀접하게 관련된 브라우저 환경에서 특정 컨텍스트를 사용하는 방법을 보여준다. 또한 자바스크립트로 데이터를 질의하기 위해 MongoDB와 PostgreSQL 같은 데이터베이스를 사용하는 방법을 설명한다.

6장, ‘관련된 Underscore.js 라이브러리와 ECMAScript 표준’에서는 새로운 ECMAScript2015(ES6) 특징을 이용하는 방법에 집중할 뿐 아니라, Underscore를 대치하거나 사용할 수 있는 Underscore.js와 자바스크립트 표준, 라이브러리 사이의 연결 방법 같은 고급 주제들을 다룬다.

7장, ‘Underscore.js 빌드 자동화와 코드 재사용성 살펴보기’에서는 다른 애플리케이션 호스트에서 사용되는 코드에 기반한 Underscore를 재사용하기 위한 전략을 가지고 빌드 자동화를 소개한다.

저자/역자 소개

지은이의 말

애플리케이션을 개발할 때 가벼우면서도 효율적인 워크플로우를 적용할 수 있도록 Underscore.js를 사용해 코드를 최적화하는 방법을 소개하고, 자바스크립트 개발에 대해 살펴본다.
이 책에서는 자바스크립트의 핵심 개념을 설명하면서 이와 함께 Underscore.js에 대한 개요를 조금씩 살펴본다. Underscore.js의 기본적인 특징을 다루며, 제공된 예제의 테스트를 바탕으로 배울 수 있는 가벼운 개발 워크플로우를 설명한다.
이해를 돕기 위한 심도 있는 예제와 설명을 통해 Underscore.js의 기능을 알려주며, 이를 통해 Underscore.js를 사용할 수 있게 해준다. 객체지향 또는 함수형 프로그래밍의 모듈과 라이브러리 사용을 위한 기본 지식을 습득하기 위해 Underscore.js 사용법을 배울 수 있으며, 여러 가지 환경에서 적용 가능한 Underscore.js 사용 사례도 살펴볼 수 있다.
마지막으로, Underscore.js와 가장 밀접한 라이브러리들을 살펴볼 수 있으며, 클라이언트와 서버 간의 코드 공유 방법, 자바스크립트 표준인 ECMAScript2015(ES6)에 대한 대비 방법 등을 익힐 수 있다.

지은이 소개

알렉스 팝(Alex Pop)

다양한 플랫폼과 기술에 있어서 많은 애플리케이션을 개발해온 14년 경력의 프로페셔널 소프트웨어 개발자다. ISV에서 근무했으며, 엔터프라이즈에서의 자원 계획 애플리케이션, 콘텐츠 관리 시스템, 보험 및 금융 소프트웨어 제품을 개발했다. 현재는 고등교육 부분에서 웹 애플리케이션 개발자로 활약하고 있다.
또한 팩트출판사의 『닷넷 개발자를 위한 AngularJS』(에이콘, 2016)의 저자며, 블로그(http://alexvpop.blogspot.co.uk/)를 운영하고 있다. 이 블로그에서는 .NET, 자바스크립트, 다양한 소프트웨어 엔지니어링 주제에 대한 기술적 자료를 제공한다.

옮긴이의 말

HTML은 웹 페이지의 내용과 양식을 저장하고, 방문자에게 보여주기 위해 사용되며, CSS는 웹페이지의 시각적 표현 방식을 결정한다. 자바스크립트는 웹 애플리케이션에 다양하면서 효과적인 표현을 제공하기 위해 개발되었다.

오늘날 거의 모든 웹페이지에서 자바스크립트가 사용되고 있다. 방문자 브라우저에서 실행되는 스크립트 언어인 자바스크립트는 웹페이지를 편리하게 사용하려는 목적으로 만들어졌기 때문에 만약에 자바스크립트가 사용이 해제되어 있다면 웹페이지의 내용이나 기능이 제한되거나 사용이 불가능해질 수 있다.

자바스크립트(JavaScript)는 객체 기반의 스크립트 프로그래밍 언어다. 이 언어는 웹브라우저 내에서 주로 사용하며, 다른 애플리케이션의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 에이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발했으며, 최종적으로 자바스크립트가 되었다.

웹페이지 안에서 객체를 자유롭게 조정하고 브라우저의 각종 기능을 이용하기 위해 필수적인 자바스크립트는 웹사이트 개발에 필수 언어가 되었고, 웹사이트에서 많은 기능을 제공하려는 다양한 고객들의 요구를 분석해 볼 때 앞으로 자바스크립트 활용은 가파르게 늘어날 것이다.

자바스크립트는 인터프리팅 방식을 사용하고, C++이나 자바같은 정적인(Static) 언어가 아니라 동적 언어기 때문에 좀 더 유연하며 추상화(abstraction)나 위임(delegation) 등의 메커니즘이 프로토타입(prototype) 객체나 함수를 통해 구현 가능하다. 독특한 구조의 유효범위(scope)와 이를 보완하기 위한 클로저(closure) 기법 등은 개발을 더욱 편리하게 하고 기능 구현에 풍부함을 더할 수 있도록 돕는다.

Underscore는 Prototype.js(혹은 Ruby)처럼 기본적인 자바스크립트 객체들을 확장하지 않고도, 함수형 프로그래밍을 지원할 수 있는 유용한 자바스크립트 라이브러리다. Array나 Object의 데이터를 쉽게 다루기 위한 API를 제공한다. 사용자 인터페이스 관련한 템플릿 엔진으로 사용 가능한 라이브러리로서 Undersocre.js, Handlebars.js, mustache.js가 있지만, 그 중에서 Undersocre.js가 제일 인기가 높다. Undersocre.js 컬렉션을 다루기 쉽게 해주는 메소드들과 함수형 프로그래밍을 쉽게 해주는 메소드를 제공한다.

Underscore.js을 처음 시작하는 독자나 빠른 시간 안에 Underscore.js를 살펴보고자 하는 개발자 모두에게 추천한다.

옮긴이 소개

테크 트랜스 그룹 T4

최신 IT 테크놀로지에 대한 리서치를 목적으로 하는 컨설팅 그룹(http://www.funnycomputinglabs.com/)이다. 엔터프라이즈 환경에서 오픈소스를 활용한 프레임워크 구축에 관심이 많으며, 최근에는 하이브리드 환경에서의 HTML5, MariaDB, Spring, Node.js, React.js, Underscore.js 등 웹 전반에 걸친 기술과 빅데이터 흐름에 주목하고 있다. 또한, 오픈소스 기반 모바일 데이터베이스와 관련된 컨설팅 수행과 자바스크립트를 기반으로 하는 서버 구축에 많은 경험을 쌓고 있다

목차

목차
  • 1장. Underscore.js 시작하기
    • 왜 Underscore인가
    • 예제로 Underscore 시작하기
      • ECMAScript 5 초보 예제
      • Underscore의 find를 적용한 초보 예제
      • Underscore의 countBy를 적용한 초보 예제
    • Underscore 핵심 함수
      • Underscore의 each
      • Underscore의 map과 reduce
    • 함수형 프로그래밍 기본
    • ECMAScript 5를 대상으로 한 자바스크립트 애플리케이션에서의 유용한 패턴과 실례
      • 즉시 실행 함수 표현
      • 노출식 모듈 패턴
      • 자바스크립트 엄격 모드
    • Underscore를 살펴보기 위한 개발 워크플로우 설정
      • Node.js로 자바스크립트 개발하기
        • 윈도우
        • 맥 OS X
        • 리눅스
        • Node.js 설치 확인
      • Bower로 자바스크립트 의존성 관리하기
      • 자바스크립트 편집기 고르기
    • Jasmine으로 자바스크립트 코드 테스트하기
      • Jasmine 소개
      • 기본 Jasmine 인프라를 사용한 테스트 추가하기
    • 요약

  • 2장. Underscore.js에서 컬렉션 사용하기
    • Underscore 핵심 함수 다시 보기: each, map, reduce
      • 리플렉션 기술 적용하기
      • this 변수 조작하기
      • 객체 프로퍼티에 map과 reduce 사용하기
    • 탐색과 필터링
      • 탐색하기
        • Underscore의 find
        • Underscore의 some
        • Underscore의 findWhere
        • Underscore의 contains
      • 필터링
        • Underscore의 filter
        • Underscore의 where
        • Underscore의 reject와 partition
        • Underscore의 every
    • 집계와 변환
      • 집계
        • Underscore의 max와 min
      • 변환
        • Underscore의 sortBy
        • Underscore의 groupBy
        • Underscore의 indexBy
        • Underscore의 countBy
    • 기타 컬렉션 기반 함수들
    • 요약

  • 3장. Underscore에서 배열, 객체, 함수 사용하기
    • 배열
      • 배열의 처음과 끝 추출하기
      • 합집합, 교집합, 관계 함수
      • 배열 관련 기타 함수
    • 객체
      • Underscore의 keys
      • Underscore의 values와 pairs
      • Underscore의 invert와 functions
      • Underscore의 pick, omit
      • Underscore의 extend, clone, defaults
      • Underscore의 has, property, propertyOf, matcher
      • 객체 간 비교와 객체에 대한 표명
      • 다른 객체 관련 기타 함수
    • 함수
      • bind, bindAll, partial로 함수 합성하기
      • memoize, wrap, negate, compose로 함수 합성하기
      • 함수의 호출 시간 및 횟수 제어하기
    • 유틸리티 함수
    • 요약

  • 4장. Underscore.js에서의 프로그래밍 패러다임
    • 객체지향 프로그래밍 패러다임
      • 객체 리터럴로 상속하기
      • 객체 생성자로 상속하기
      • Underscore를 사용한 객체지향 프로그래밍 패러다임
        • 원본 고객 데이터로 클래스 사용하기
        • Underscore로 생성자 검증하기
    • 함수형 프로그래밍 패러다임
    • 함수형 프로그래밍 스타일로 전환하기
    • Underscore를 사용한 함수형 프로그래밍
    • 요약

  • 5장. 서버의 브라우저에서 데이터베이스를 이용한 Underscore.js 사용하기
    • 브라우저에서 Underscore 사용하기
    • 부트스트랩을 사용해 향상된 예제 결과 얻기
      • Underscore 템플릿을 사용해 더 나은 HTML 마크업 사용하기
    • Node.js를 가지고 서버에서 Underscore 사용하기
      • Node.js를 가지고 자바스크립트 실행하기
      • Node.js 모듈 사용하기
      • 모듈 위치 관련
      • npm 패키지 만들기
      • 자바스크립트 코드를 Node.js 모듈로 변경하기
      • Node.js로 테스트하기
    • MongoDB와 함께 Underscore 사용하기
      • MongoDB 설치하고 설정하기
        • 윈도우에서 MongoDB 설치하기
        • 우분투 리눅스에서 MongoDB 설치하기
        • 맥 OS X에서 MongoDB 설치하기
        • MongoDB 설정하고 동작시키기
      • MongoDB 클라이언트와 Underscore를 사용해 초기 데이터 만들기
      • Node.js를 사용한 비동기 프로그래밍
      • MongoDB Node.js 드라이버를 사용해 데이터 접근하기
    • PostgreSQL을 가지고 Underscore 사용하기
      • PostgreSQL 설치하고 설정하기
        • 윈도우에서 PostgreSQL 설치하기
        • 우분투 리눅스에서 PostgreSQL 설치하기
        • 맥 OS X에서 PostgreSQL 설치하기
      • 기본 데이터베이스 명령을 가지고 psql 사용하기
      • PostgreSQL 데이터 타입
        • SQL 타입
        • jsonb 타입
      • plv8을 가지고 PostgreSQL 사용하기
      • plv8과 Underscore를 사용해 데이터 만들기
    • 요약

  • 6장. 관련된 Underscore.js 라이브러리와 ECMAScript 표준
    • Underscore-contrib 라이브러리 사용하기
      • Underscore-contrib 기능 소개
      • Underscore-contrib의 예
    • lodash 라이브러리 사용
      • lodash 기능 소개
      • Underscore에서 lodash로의 프로젝트 마이그레이션
    • Underscore와 자바스크립트 표준
      • ECMAScript 5.1(ES5)
      • ECMAScript 2015(ES6)
        • 배열: 새로운 기능
        • 그 외 중요한 새로운 기능
        • 현재 ECMAScript 2015(ES6)와 트랜스파일러
        • ECMAScript 2015(ES6) 예제
    • 요약

  • 7장. Underscore.js 빌드 자동화와 코드 재사용성 살펴보기
    • Gulp를 이용한 빌드 자동화
    • 클라이언트와 서버 간의 Underscore 기반 코드 재사용
      • Browserify를 이용한 클라이언트 코드 패키징을 위한 CommonJS 모듈
      • Browserify를 이용한 브라우저에서의 CommonJS 모듈 테스팅
      • Browerify와 Gulp의 통합
    • Browserify의 ECMAScript 2015(ES6) 지원
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안