장바구니 담기 close

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

Nodejs를 활용한 마이크로서비스 개발

Nodejs를 활용한 마이크로서비스 개발

  • 데이비드 곤잘레스
  • |
  • 에이콘출판
  • |
  • 2017-08-31 출간
  • |
  • 352페이지
  • |
  • 188 X 235 X 22 mm
  • |
  • ISBN 9791161750446
판매가

30,000원

즉시할인가

27,000

배송비

무료배송

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

수량
+ -
총주문금액
27,000

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

출판사서평

★ 이 책의 대상 독자 ★
Node.js에 어느 정도 경험이 있으며, 세네카와 마이크로서비스를 배우기 원하는 개발자를 위한 책이다. 이 책의 70%는 실무적인 내용이고(따라서 많은 코드를 작성하게 된다), 30%는 이론이다. 이론을 기반으로 생성된 코드는 독자가 새로운 소프트웨어의 패턴을 적용하는 데 도움이 될 것이다.

★ 이 책의 구성 ★
1장, ‘마이크로서비스 아키텍처’에서는 마이크로서비스 지향 아키텍처의 장점과 단점을 살펴본다. 1장은 이 책의 나머지 부분에 대한 기초가 된다.
2장, ‘마이크로서비스, 그리고 세네카와 PM2’에서는 마이크로서비스의 구축 방법으로 Node.js, 세네카, PM2를 소개한다. 2장에서는 Node.js 애플리케이션의 구조를 살펴보고, PM2를 이용해 애플리케이션을 실행하는 방법을 설명한다. 그리고 세네카와 PM2에 대한 몇 가지 대안에 대해 자세하게 살펴본다.
3장, ‘모놀리스에서 마이크로서비스로’에서는 마이크로서비스를 이용해 유기적인 성장(계획되지 않은 소프트웨어 변경)을 처리하는 방법에 대해 설명한다. 그리고 모놀리식(monolithic) 애플리케이션을 마이크로서비스로 분할하는 방법에 대해서도 다룬다.
4장, ‘첫 번째 마이크로서비스 작성에서는 첫 번째 마이크로서비스의 작성 방법에 대해 설명한다.
5장, ‘보안과 추적성’에서는 현대적인 시스템의 두 가지 중요한 측면인 보안과 추적성을 다루는 방법에 대해 설명한다. 정보를 안전하고 유지하고, 행동을 추적할 수 있도록 만들어야 한다. 이 장에서는 세네카를 이용해 작업하는 방법을 살펴본다.
6장. ‘Node.js 마이크로서비스 테스트와 문서화’에서는 주요한 프레임워크(모카(Mocha)와 차이(Chai))를 이용한 Node.js의 테스팅을 소개한다. 또한 가상 객체 서비스를 위해 시논Sinon(또 다른 프레임워크)도 이용할 것이다. 이 책에서는 마이크로서비스의 문서화를 위해서 스웨거(Swagger)를 선택했다.
7장, ‘마이크로서비스 모니터링’에서는 PM2를 이용해 마이크로서비스를 모니터링 하는 방법을 설명한다. 이 같은 고급 도구를 최대한 활용하기 위해 PM2와 주요 메트릭과 함께 이용한다.
8장, ‘마이크로서비스 배포’에서는 PM2를 이용해 다양한 환경에 마이크로서비스를 배포하는 방법을 설명한다. 단일 명령어로 애플리케이션 생태계를 관리하고 마이크로서비스 아키텍처를 통해 도입되는 오버헤드를 감소시키는 방법을 설명한다. Node.js에서 애플리케이션의 배포뿐 아니라 일반 애플리케이션에서의 배포에 대해서도 가장 진보된 시스템 중 하나인 도커에 대해서도 살펴본다.

목차

1장. 마이크로서비스 아키텍처
__마이크로서비스의 필요성
____모놀리식 소프트웨어
____현실에서의 마이크로서비스
____마이크로서비스 지향 아키텍처
____장점
____단점
__주요 설계 원칙
____비즈니스 단위가 컴포넌트는 아니다
____스마트한 서비스와 독립적인 처리 능력이 없는 통신 파이프분산화
____기술적 정렬
____마이크로서비스 크기
__마이크로서비스의 주요 장점
____탄력성
____확장성
____기술적 이질성
____교체 가능성
____독립성
________교체 가능성이 중요한 이유
________배포 용이성
__SOA vs 마이크로서비스
__왜 Node.jsdlsrk?
____API 집합
____Node.js의 전망
__요약

2장. 마이크로서비스, 그리고 세네카와 PM2
__Node.js의 필요성
____Node.js, npm, 세네카, PM2의 설치
________npm
____첫 번째 프로그램 - Hello World
____Node.js의 쓰레드 모델
____모듈형 조직화의 모범 사례
________자바스크립트
________SOLID 설계 원칙
__세네카 - 마이크로서비스 프레임워크
____제어의 역전 처리
____세네카에서의 패턴 매칭
________Patrun - 패턴 매칭 라이브러리
________패턴 재사용
________플러그인 작성
________웹 서버 통합
__PM2 - Node.js를 위한 태스크 러너
____단일 쓰레드 애플리케이션과 예외
____PM2 - 업계 표준 태스크 러너 사용
__요약

3장. 모놀리스에서 마이크로서비스로
__먼저, 모놀리스가 있었다
____유기적 성장에 대한 대처 방법
____적절한 추상적 수준
__그 후, 마이크로서비스가 등장했다
____마이크로서비스의 단점
____모놀리스 분할
____모놀리스 분할 문제 - 데이터 관련 사항
__조직적 정렬
__요약

4장. 첫 번째 Node.js 마이크로서비스 작성
__마이크로머스 - 개요
__제품 관리자 - 두 가지 측면을 갖는 핵심 요소
____제품 목록 가져오기
____카테고리 별로 가져오기
____ID 별로 가져오기
____제품 추가하기
____제품 제거하기
____제품 편집하기
____모든 기능을 연결하기
____익스프레스와 통합하기 - REST API 생성 방법
__이메일 전송기 - 일반적 문제
____이메일 전송 방법
____인터페이스 정의하기
____Mandrill 설정
____실습 - 마이크로서비스에 Mandrill 통합하기
____대체 전략
__주문 관리자
____마이크로서비스 정의하기 - 비-로컬 데이터 수집 방법
____주문 관리자 - 코드
________원격 서비스 호출
________완벽함보다는 탄력성
__UI - API 집합체
____프런트엔드 마이크로서비스의 필요성
____코드
____서비스 품질 저하 - 실패가 재앙이 되지 않는 경우
____회로 차단기
____세네카 - 삶을 더 쉽게 만드는 간단한 퍼즐
____세네카와 프라미스
__디버깅
__요약

5장. 보안과 추적성
__논리적인 인프라스트럭처 보안
____SSH - 통신 암호화하기
__애플리케이션 보안
____일반적인 보안 위협 - 최신 보안 상태 유지 방법
________주입크로스 사이트 스크립팅
________크로스 사이트 요청 위조
________오픈 리다이렉트
____효과적인 코드 리뷰
__추적성
____로깅
____요청 추적
____감사
____HTTP 코드
________1xx - 정보 제공
________2xx - 성공 코드
________3xx - 리다이렉션
________4xx - 클라이언트 오류
________5xx -서버 오류
________마이크로서비스에서 HTTP 코드가 문제되는 이유
__요약

6장. Node.js 마이크로서비스 테스트와 문서화
__기능 테스트
____자동화 테스트 피라미드
________단위 테스트
________통합 테스트
________종단간 테스트
________얼마나 많이 테스트해야 과도한가?
____Node.js에서 마이크로서비스 테스트Chai
________Mocha
________Sinon.JS - 가상 객체 생성 프레임워크
________실제 마이크로서비스에서의 테스트
________수동 테스트 - 필요악
__마이크로서비스 문서화
____Swagger를 통한 API 문서화
____Swagger 정의로부터 프로젝트 생성
__요약

7장. 마이크로서비스 모니터링
__서비스 모니터링
____PM2와 Keymetrics를 이용한 모니터링
________문제 진단애플리케이션 예외 처리 모니터링
________사용자 정의 메트릭
__시미언 아미 - 스포티파이에서의 액티브 모니터링
____처리량과 성능 저하
__요약

8장. 마이크로서비스 배포
__소프트웨어 배포 개념
____지속적인 통합
____지속적인 전달
__PM2를 통한 배포
____PM2 - 에코시스템
____PM2를 통한 마이크로서비스 배포
________서버 구성
__도커 - 소프트웨어 전달을 위한 컨테이너
____컨테이너 설정
________도커 설치
________이미지 선택
________컨테이너 실행
________필요한 소프트웨어 설치
________변경 사항 저장
____Node.js 애플리케이션 배포
____도커 컨테이너 생성 자동화
__배우기는 쉽고 마스터하기는 어려운 Node.js 이벤트 루프
__Node.js 애플리케이션 클러스터링
__애플리케이션 로드 밸런싱
____NGINX 상태 점검
________패시브 상태 점검
________액티브 상태 점검
__요약

저자소개

저자 데이비드 곤잘레스(David Gonzalez)는 수 년 동안 재무 서비스 분야에 종사하고 있는 언어 중립적인 소프트웨어 엔지니어다. 추상화의 올바른 수준에 대한 해답과, 너무 구체적인 것과 너무 추상적인 것 사이의 적절한 균형을 찾는 방법을 배우기 위해 노력하고 있다.
스페인에서 공부했지만, 2011년부터 더 넓고 흥미로운 더블린으로 이주해 살고 있다. 현재 핀테크 분야의 독립 컨설턴트로 일하고 있다. 링크드인(Linkedin) 계정의 URL은 https://ie.linkedin.com/in/david-gonzalez-737b7383이다.
소프트웨어 개발이라는 복잡한 세계에 대한 더 넓은 그림을 얻기 위해, 새로운 기술과 패러다임을 이용한 실험을 좋아한다.

도서소개

마이크로서비스에 대한 소개부터 개발, 배포, 모니터링까지 전반적인 개념을 다루고 있다. 마이크로서비스의 개발 프로세스, 테스트, 배포 및 모니터링에 대해 학습하며, 이와 관련해 도커, 세네카, PM2 등 다양한 도구도 함께 살펴본다. 독자들은 이 책을 통해 마이크로서비스 개발에 필요한 Node.js의 개념과 더불어 좋은 테스트 커버리지를 갖는 고품질 마이크로서비스를 작성하고 모니터링 방법을 학습할 수 있다.

교환 및 환불안내

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