소스 코드 파일은여기에서 내려 받으실 수 있습니다.
마이크로서비스에 대한 소개부터 개발, 배포, 모니터링까지 전반적인 개념을 다루고 있다. 마이크로서비스의 개발 프로세스, 테스트, 배포 및 모니터링에 대해 학습하며, 이와 관련해 도커, 세네카, PM2 등 다양한 도구도 함께 살펴본다. 독자들은 이 책을 통해 마이크로서비스 개발에 필요한 Node.js의 개념과 더불어 좋은 테스트 커버리지를 갖는 고품질 마이크로서비스를 작성하고 모니터링 방법을 학습할 수 있다.
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에서 애플리케이션의 배포뿐 아니라 일반 애플리케이션에서의 배포에 대해서도 가장 진보된 시스템 중 하나인 도커에 대해서도 살펴본다.
이 책은 Node.js와 세네카(Seneca)나 PM2 같은 가장 현대적인 프레임워크를 이용해 마이크로서비스의 개발을 시작하기 위한 실무 지침서다. 각 장에서는 마이크로서비스의 설계(design), 구현(build), 테스트(test), 배포(deploy) 방법을 모범 사례와 함께 살펴볼 것이다. 또한 귀중한 교훈인 과도한 설계를 방지하기 위해 적절한 수준에서 타협하는 방법과 기술 솔루션과 일치하는 비즈니스 요구사항을 얻는 방법에 대해서도 논의한다
수 년 동안 재무 서비스 분야에 종사하고 있는 언어 중립적인 소프트웨어 엔지니어다. 추상화의 올바른 수준에 대한 해답과, 너무 구체적인 것과 너무 추상적인 것 사이의 적절한 균형을 찾는 방법을 배우기 위해 노력하고 있다.
스페인에서 공부했지만, 2011년부터 더 넓고 흥미로운 더블린으로 이주해 살고 있다. 현재 핀테크 분야의 독립 컨설턴트로 일하고 있다. 링크드인(Linkedin) 계정의 URL은 https://ie.linkedin.com/in/david-gonzalez-737b7383이다.
소프트웨어 개발이라는 복잡한 세계에 대한 더 넓은 그림을 얻기 위해, 새로운 기술과 패러다임을 이용한 실험을 좋아한다.
소프트웨어 관련 모든 분야가 빠르게 변하고 있다. 개발 언어부터 프로세스, 개발 조직과 문화 모두가 변하고 있다. 마이크로서비스는 이러한 변화 중 하나로 기존의 모놀리식 아키텍처보다 더 효율적이고 빠르게 소프트웨어를 개발할 수 있는 방법 중 하나다. 이 책은 마이크로서비스의 기본 개념부터 모니터링까지 광범위한 내용을 다루고 있으며, 마이크로서비스의 개발, 배포, 모니터링에 필요한 다양한 도구들을 함께 소개하고 있다. 이 책을 통해 마이크로서비스에 대한 개념과 함께 실제 개발에서 활용 가능한 다양한 도구들에 익숙해지기를 바라며, 마이크로서비스라는 새로운 기술을 파악하기 위한 독자들의 노력에 조금이나마 도움이 되기를 바란다.
지능망(IN)을 시작으로 SW 개발을 시작했으며, 정적 분석과 SW 구조 분석 등의 업무를 담당했다. 현재 삼성전자 네트워크 사업부에서 SCM을 포함한 개발 인프라를 담당하고 있다. 개발자 역량 강화와 개발 조직 구성과 시스템 관리, 데이터베이스, 테스트와 애자일 등 SW 개발 관련 분야에 대해 관심을 잃지 않으려 노력하고 있다.
[p.84 : 아래서 5행 - p.85 : 8행]
->
[p.112 : 3행 - p.113 : 2행]
"따라서 해결책은 간단하다. ~ '첫 번째 마이크로서비스의 확장'을 달성했다."
->
(삭제)
[p.128 : 제품 추가하기 소스 코드 6행]
products.category = args.category;
->
(삭제)
[p129 : 제품 편집하기 소스 코드 첫 행]
seneca.edit({area: "product", action: "edit"}, function(args,
->
seneca.add({area: "product", action: "edit"}, function(args,
[p.129 : 제품 제거하기 소스 코드 5행]
done(err, null);
->
(들여쓰기)done(err, null);
[p.131 : 소스 코드 5행]
products.category = args.category;
->
(삭제)
[p.133 : 소스 코드 9행]
[p.144 : 3행]
할 수 없는 것이
->
할 수 있는 것이
[p.148 : 4행]
수행하다면,
->
수행한다면,
[p.182 : 중간 명령어]
npm install ?g node-inspector
->
npm install -g node-inspector