장바구니 담기 close

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

Nodejs 디자인 패턴

Nodejs 디자인 패턴

  • MarioCasciaro
  • |
  • 영진닷컴
  • |
  • 2018-10-20 출간
  • |
  • 504페이지
  • |
  • 188 X 257 mm
  • |
  • ISBN 9788931459425
판매가

27,000원

즉시할인가

24,300

배송비

무료배송

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

수량
+ -
총주문금액
24,300

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

목차


1장. Node.js 플랫폼에 오신 것을 환영합니다

1.1 Node.js 철학
경량 코어
경량 모듈
작은 외부 인터페이스
간결함과 실용주의

1.2 Node.js 6와 ES2015에 대한 소개
let과 const 키워드
화살표 함수
클래스 구문
향상된 객체 리터럴
Map과 Set Collection
WeakMap 및 WeakSet Collection
Template 표기법
ES2015의 기타 기능들

1.3 Reactor 패턴
I/O는 속도가 느리다.
블로킹 I/O
논 블로킹 I/O
이벤트 디멀티플렉싱
Reactor 패턴 소개
Node.js의 논 블로킹 엔진 libuv
Node.js를 위한 구조

2장. Node.js 필수 패턴

2.1 콜백 패턴
연속 전달 방식
동기냐? 비동기냐?
Node.js 콜백 규칙

2.2 모듈 시스템과 그 패턴
노출식 모듈 패턴
Node.js 모듈 설명
모듈 정의 패턴

2.3 관찰자 패턴
EventEmitter 클래스
EventEmitter 생성 및 사용
오류 전파
관찰 가능한 객체 만들기
동기 및 비동기 이벤트
EventEmitter vs 콜백
콜백과 EventEmitter의 결합

3장. 콜백을 사용한 비동기 제어 흐름 패턴

3.1 비동기 프로그래밍의 어려움
간단한 웹 스파이더 만들기
콜백 헬

3.2 일반 JavaScript의 사용
콜백 규칙
콜백 규칙 적용
순차 실행
병렬 실행
제한된 병렬 실행

3.3 비동기 라이브러리
순차 실행
병렬 실행
제한된 병렬 실행

4장. ES2015 이후 비동기식 프로그램의 제어 흐름 패턴

4.1 프라미스(Promise)
프라미스란 무엇인가?
Promises/A+ 구현
Node.js 스타일 함수 프라미스화하기
순차 실행
병렬 실행
제한된 병렬 실행
공개 API로 콜백과 프라미스 노출하기

4.2 제너레이터(Generator)
제너레이터의 기본
제너레이터를 사용한 비동기 제어 흐름
순차 실행
병렬 실행
제한된 병렬 실행

4.3 Babel을 사용한 비동기 await
Babel의 설치 및 실행

4.4 비교

5장. 스트림 코딩

5.1 스트림의 중요성
버퍼링 대 스트리밍
공간 효율성
시간 효율성
결합성

5.2 스트림 시작하기
스트림의 구조
Readable 스트림
Writable 스트림
양방향(Duplex) 스트림
Transform 스트림
Transform 스트림 구현

5.3 스트림을 사용한 비동기 제어 흐름
순차 실행
비순차 병렬 실행
제한된 비순차 병렬 실행

5.4 파이프 패턴
스트림 결합하기
스트림 포크(Fork)하기
스트림 병합(merge)하기
멀티플렉싱과 디멀티플렉싱

6장. 디자인 패턴

6.1 팩토리(Factory)
객체를 생성하기 위한 제너릭 인터페이스
캡슐화를 강제하기 위한 메커니즘
간단한 코드 프로파일러 작성하기
합성 가능한 팩토리 함수
실전에서는 어떻게 사용되는가

6.2 공개 생성자(Revealing constructor)
읽기 전용 이벤트 이미터
실전에서는 어떻게 사용되는가

6.3 프록시(Proxy)
프록시 구현 기술
다른 기술의 비교
Writable 스트림 로그 작성
생태계에서의 프록시 - 함수 후크 및 AOP
ES2015 Proxy
실전에서는 어떻게 사용되는가

6.4 데코레이터(Decorator)
데코레이터 구현 기법
LevelUP 데이터베이스 장식하기

6.5 어댑터(Adapter)
파일 시스템 API를 통한 LevelUP 사용
실전에서는 어떻게 사용되는가

6.6 전략(Strategy)
다중 형식의 환경설정 객체
실전에서는 어떻게 사용되는가

6.7 상태(State)
기본적인 fail-safe-socket 구현하기

6.8 템플릿(Template)
환경설정 관리자 템플릿
실전에서는 어떻게 사용되는가

6.9 미들웨어(Middleware)
미들웨어로서의 Express
패턴으로서의 미들웨어
ØMQ용 미들웨어 프레임워크 만들기
Koa에서 제너레이터를 사용한 미들웨어

6.10 커맨드(Command)
유연한 패턴
보다 복잡한 명령

7장. 모듈 연결

7.1 모듈과 의존성
Node.js의 가장 일반적인 종속성
응집력과 결합력
상태 저장 모듈

7.2 모듈 연결 패턴
하드코드된 종속성
의존성 주입
서비스 로케이터
의존성 주입 컨테이너

7.3 연결(Wiring)을 위한 플러그인
패키지로서의 플러그인
확장 포인트
플러그인 제어와 어플리케이션 제어 확장
로그아웃 플러그인 구현하기

8장. 웹 어플리케이션을 위한 범용 JavaScript

8.1 브라우저와 코드 공유하기
모듈 공유
ES2015 모듈

8.2 Webpack 소개
Webpack의 마력 탐구
Webpack 사용의 이점
Webpack과 함께 ES2015 사용하기

8.3 크로스 플랫폼 개발의 기본
런타임 코드 분기
빌드 타임 코드 분기
모듈 교환
크로스 플랫폼 개발을 위한 디자인 패턴

8.4 리액트(React) 소개
첫 번째 React 컴포넌트
JSX가 뭐지?!
JSX 변환을 위한 Webpack 설정
브라우저에서 렌더링하기
React Router 라이브러리

8.5 범용 JavaScript 앱 만들기
재사용 가능한 컴포넌트 만들기
서버 측 렌더링
범용 렌더링 및 라우팅
범용 데이터 조회

9장. 고급 비동기 레시피

9.1 비동기적으로 초기화되는 require 수행 모듈
전통적인 솔루션
미리 초기화된 큐
실전에서는 어떻게 사용되는가

9.2 비동기 배치(일괄 처리) 및 캐싱
캐싱 또는 일괄 처리가 없는 서버 구현
비동기 요청 일괄 처리
비동기 요청 캐싱
프라미스를 사용한 일괄처리와 캐싱

9.3 CPU 바운딩 작업 실행
부분 집합의 합 문제 해결
setImmediate를 사용한 인터리빙
멀티 프로세스 사용

10장. 확장성과 구조적 패턴

10.1 어플리케이션 확장에 대한 소개
Node.js 응용 프로그램 확장
확장성의 세 가지 차원

10.2 복제 및 로드 밸런싱
클러스터 모듈
상태 저장 통신 다루기
역방향 프록시를 사용하여 확장
서비스 레지스트리 사용
피어-투-피어 로드 밸런싱

10.3 복잡한 어플리케이션 분해
단일(Monolitic) 아키텍처
마이크로 서비스 아키텍처
마이크로 서비스 아키텍처의 통합 패턴

11장. 메시징과 통합 패턴

11.1 메시징 시스템의 기본 사항
단방향 및 요청/응답 턴
메시지 유형
비동기 메시징 및 큐
피어 투 피어 또는 브로커 기반 메시징

11.2 게시/구독 패턴
간단한 실시간 채팅 어플리케이션 만들기
메시지 브로커로 Redis 사용하기
ØMQ를 사용한 피어 투 피어 게시/구독
영구 구독자

11.3 파이프 라인 및 작업 배포 패턴
ØMQ 팬아웃/팬인 패턴
AMQP의 파이프라인과 경쟁 소비자

11.4 요청(request)/응답(reply) 패턴
상관 관계 식별자
반송 주소

교환 및 환불안내

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