간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (23,090원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (17,010원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (19,440원)
(최대할인 4만원 / 2만원 이상 결제)
Close

Node.js 디자인 패턴 : 모듈형의 확장 가능한 서버 측 어플리케이션 제작을 위한

원제 : Node.Js Design Patterns
소득공제

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

판매지수 22
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기

Node.js 최고의 지침서

정가

27,000원

  • 24,300 (10%할인)

    1,350P (5%적립)

할인혜택
적립혜택
  • S-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 6/19(수) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 상품권

AD

책소개

한 차원 높은 웹 설계를 위한 Node.js 디자인 패턴 가이드
Node.js는 JavaScript를 사용하여 쉽게 확장 가능한 서버 측 어플리케이션을 만들 수 있는 매우 유용한 소프트웨어 플랫폼으로, 효율적인 코드 작성을 통해 설계 및 코드 분할을 가능하게 합니다.
이 책은 Node.js의 비동기 단일 스레드 아키텍처와 주요 디자인 패턴을 설명하고, 비동기식 제어 흐름 패턴과 스트림 구성 요소를 마스터하는 방법을 보여주며, 가장 일반적인 디자인 패턴의 Node.js 구현 목록과 Node.js 전용 특정 디자인 패턴으로 마무리됩니다. 또한 범용 JavaScript, 확장성과 같은 보다 진보된 개념들을 통해 Node.js를 사용하여 엔터프라이즈급 어플리케이션을 구축하기 위한 모든 필요한 개념들을 제공하고 있습니다. 이 책 전반에 걸쳐 LevelDb, Redis, RabbitMQ, ZMQ, Express와 같은 실제 라이브러리들과 기술들을 통해 다양한 패턴과 기법을 보여주며, 이를 통해 Node.js 생태계와 그 솔루션들에 대한 훌륭한 예시를 제공할 것입니다.

목차

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장. Node.js 플랫폼에 오신 것을 환영합니다.
Node.js 플랫폼의 핵심 패턴을 보여줌으로써 Node.js 어플리케이션 디자인의 세상으로 안내합니다. Node.js 생태계와 철학, 새로운 기능과 리액터 패턴에 대한 간단한 소개를 다루고 있습니다.

2장. Node.js의 필수 패턴
Node.js를 사용한 비동기 코딩과 설계 패턴의 첫 단계로 콜백과 이벤트 이미터(옵저버 패턴)에 대해 논의하고 비교합니다. 또한 Node.js 모듈 시스템과 관련 패턴들을 소개합니다.

3장. 콜백을 사용한 비동기 제어 흐름 패턴
Node.js에서 효과적인 비동기 제어 흐름 처리를 위한 일련의 패턴과 기술을 소개합니다. 평범한 JavaScript와 Async 라이브러리를 사용하여 “콜백 지옥” 문제를 해결하는 방법을 배울 수 있습니다.

4장. ES2015 이후 비동기식 프로그램의 제어 흐름 패턴
ES2015와 Promises, Generators 및 Async-Await를 소개하면서 비동기 제어 흐름에 대해 알아봅니다.

5장. 스트림 코딩
Node.js의 가장 중요한 패턴 중 하나인 스트림(Stream)에 대해 자세히 살펴봅니다. 스트림 변환을 통한 데이터 처리와 이들을 다른 형태로 조합하는 방법을 소개합니다.

6장. 디자인 패턴
Node.js에서 전통적인 디자인 패턴이라는 논란의 주제를 다루게 됩니다. 가장 많이 쓰는 기존의 디자인 패턴을 설명하고 Node.js에서 볼 수 있는 비전형적인 방식을 소개합니다. 또한 JavaScript과 Node.js에만 해당하는 새로운 디자인 패턴을 소개합니다.

7장. 모듈 연결
어플리케이션 모듈들을 연결하는 다양한 솔루션을 분석합니다. 종속성 삽입(Dependency Injection) 및 서비스 로케이터(Service locator) 같은 디자인 패턴에 대해 배웁니다.

8장. 웹 어플리케이션을 위한 범용 JavaScript
최신 JavaScript 웹 어플리케이션의 가장 흥미로운 기능 중 하나인 프론트엔드와 백엔드 간 어플리케이션 코드를 공유할 수 있는 방법을 살펴봅니다. React, Webpack 및 Babel을 사용한 간단한 웹 어플리케이션 제작을 통해 범용 JavaScript의 기본 원칙을 배웁니다.

9장. 고급 비동기 레시피
즉시 사용 가능한 솔루션으로 일반적인 코딩 및 디자인 문제를 해결할 수 있는 방법을 보여줍니다.

10장. 확장성과 구조적 패턴
Node.js 어플리케이션을 확장하기 위한 기본 기술과 패턴에 대해 설명합니다.

11장. 메시징과 통합 패턴
ØMQ와 AMQP를 사용하여 어떻게 복잡한 분산시스템을 만들고 통합하는가를 설명함으로써 중요한 메시지 패턴을 보여줍니다.

저자소개

Mario Casciaro [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

김성원 [역] 신작알림 SMS신청
생년월일 -

1999년부터 안랩 등 여러 회사에 근무하면서 다양한 언어로 엔터프라이즈용 응용 애플리케이션 개발에 참여해 왔으며 최근에는 음성인식, NLP 기술에 관심을 가지고 있다. 저서로는 『새로 쓰는 자바 웹 프로그래밍』, 『쉽게 풀어 쓴 자바 데이터베이스 프로그래밍』, 역서로는 『iPhone 게임 개발자 레퍼런스』, 『코딩 인터뷰 퀘스천』, 『Node.js 디자인 패턴 바이블』 등이 있다.

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    10.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

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

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주)KG이니시스 구매안전서비스서비스 가입사실 확인

    (주)인터파크커머스는 회원님들의 안전거래를 위해 구매금액, 결제수단에 상관없이 (주)인터파크커머스를 통한 모든 거래에 대하여
    (주)KG이니시스가 제공하는 구매안전서비스를 적용하고 있습니다.

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

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

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시 15,000원 이상 무료배송, 15,000원 미만 2,500원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용