Node.js 마이크로서비스 코딩 공작소
마이크로서비스 아키텍처로 자유롭게 개발하고 손쉽게 업데이트하자!
마이크로서비스, Node.js로 구현하자마이크로서비스는 작은 서비스를 느슨하게 결합해 하나의 애플리케이션으로 개발하는 방법으로, 각 서비스는 독립적으로 개발한다. 따라서 같은 언어나 프레임워크를 사용하지 않아도 되고, 코드 수정과 배포가 자유로워 좀 더 손쉽게 업데이트할 수 있다. 여러 프레임워크 중에서 이벤트 기반의 논블로킹 I/O 모델을 사용하는 Node.js로 좀 더 손쉽게 마이크로서비스를 구현해본다.
제공된 코드를 직접 실행하며 이해하자공통된 요구 사항을 바탕으로 모놀리식 서비스를 만든 후 마이크로서비스 구현 단계에 맞춰 설계부터 각 서비스 구현, 인터페이스 통일, 서비스 실행까지 제공된 코드를 직접 실행해보며 내용을 확실하게 이해할 수 있다.
마이크로서비스를 만들 때 고려할 주제들까지 배우자마이크로서비스 아키텍처를 구현할 때는 장애 처리, 공유 자원 처리, 로그 수집, 보안과 모니터링, 배포 자동화 등도 고려해야 한다. 각 주제들의 핵심을 파악할 수 있다.
전자책 구입
목차
- 활용법
- 제 1 부 마이크로서비스의 개요
- 1장 모놀리식 아키텍처
- 1.1 모놀리식 아키텍처란
- 1.2 모놀리식 아키텍처의 한계
- 1.3 분산 아키텍처의 필요성
- 1.4 정리
- 2장 마이크로서비스 아키텍처
- 2.1 마이크로서비스란
- 2.2 마이크로서비스 아키텍처의 단점
- 2.3 마이크로서비스와 Node.js
- 2.4 정리
- 제 2 부 Node.js로 모놀리식 서비스 만들기
- 3장 Node.js 이해
- 3.1 비동기 프로그래밍
- 3.2 싱글 스레드 프로그래밍
- 3.3 Node.js로 서버와 클라이언트 만들기
- 3.3.1 HTTP 서버 만들기
- 3.3.2 HTTP 클라이언트 만들기
- 3.3.3 TCP 서버 만들기
- 3.3.4 TCP 클라이언트 만들기
- 3.4 정리
- 4장 Node.js로 모놀리식 서비스 만들기 : 설계
- 4.1 요구 사항 정의
- 4.2 시스템 구성 설계
- 4.3 REST API 설계
- 4.3.1 상품 관리 REST API
- 4.3.2 회원 관리 REST API
- 4.3.3 구매 관리 REST API
- 4.4 데이터베이스 설계
- 4.4.1 상품 관리 테이블 설계
- 4.4.2 회원 관리 테이블 설계
- 4.4.3 구매 관리 테이블 설계
- 4.5 정리
- 5장 Node.js로 모놀리식 서비스 만들기 : 구현
- 5.1 파일 구성
- 5.2 REST API 서버 만들기
- 5.3 MariaDB 연동
- 5.3.1 npm으로 확장 모듈 설치
- 5.4 비즈니스 모듈 만들기
- 5.4.1 상품 관리 모듈 만들기
- 5.4.2 회원 관리 모듈 만들기
- 5.4.3 구매 관리 모듈 만들기
- 5.5 기능 만들기
- 5.5.1 상품 관리 기능 만들기
- 5.5.2 회원 관리 기능 만들기
- 5.5.3 구매 관리 기능 만들기
- 5.6 테스트
- 5.7 정리
- 제 3 부 마이크로서비스 만들기
- 6장 모놀리식에서 마이크로서비스로 : 분산 아키텍처
- 6.1 마이크로서비스와 분산 아키텍처
- 6.2 토폴로지의 이해
- 6.2.1 버스형
- 6.2.2 트리형
- 6.2.3 링형
- 6.2.4 성형
- 6.2.5 망형
- 6.3 분산 시스템 만들기
- 6.3.1 Client 클래스 만들기
- 6.3.2 Server 클래스 만들기
- 6.3.3 프로토콜 정의
- 6.4 Distributor 만들기
- 6.5 정리
- 7장 모놀리식에서 마이크로서비스로 : 마이크로서비스 만들기
- 7.1 마이크로서비스 만들기 : 상품 관리
- 7.2 마이크로서비스 만들기 : 회원 관리
- 7.3 마이크로서비스 만들기 : 구매 관리
- 7.4 정리
- 8장 모놀리식에서 마이크로서비스로 : 인터페이스 통일
- 8.1 인터페이스
- 8.2 레이어의 필요성
- 8.3 HTTP 게이트웨이 만들기
- 8.4 정리
- 9장 모놀리식에서 마이크로서비스로 : 마이크로서비스 실행
- 9.1 Distributor 실행
- 9.2 게이트웨이 실행
- 9.3 마이크로서비스 실행
- 9.4 API 호출
- 9.5 정리
- 제 4 부 마이크로서비스 운영하기
- 10장 장애 처리
- 10.1 Failover와 Fault Tolerant
- 10.2 cluster 모듈 활용
- 1 0.2.1 cluster 모듈 예제
- 1 0.2.2 고가용 마이크로서비스 만들기
- 10.3 정리
- 11장 분산을 고려한 비즈니스 로직 만들기
- 11.1 마이크로서비스와 공유 자원
- 11.2 공유 자원 처리
- 11.3 Redis 활용
- 1 1.3.1 Redis 기능
- 1 1.3.2 Redis 연동
- 11.4 정리
- 12장 로그와 빅데이터
- 12.1 로그 마이크로서비스
- 12.2 로그 저장
- 1 2.2.1 fs 모듈을 이용한 파일 로그 만들기
- 1 2.2.2 Elasticsearch 연동
- 1 2.2.3 Kibana를 이용한 시각화
- 12.3 정리
- 13장 보안과 모니터링
- 13.1 보안
- 1 3.1.1 Public과 Private 영역
- 1 3.1.2 Public 게이트웨이
- 13.2 모니터링
- 1 3.2.1 process 오브젝트를 이용한 모니터링
- 1 3.2.2 API별 모니터링
- 13.3 정리
- 14장 마이크로서비스 배포
- 14.1 마이크로서비스와 배포
- 14.2 배포 자동화
- 14.3 가상화
- 14.4 정리
- 15장 마이크로서비스와 조직
- 15.1 콘웨이 법칙과 피자 두 판의 법칙
- 15.2 데브옵스
- 15.3 정리
- 부록 A 윈도 환경에서 Node.js 설치
- A.1 Node.js 내려받기
- A.2 Node.js 설치
- 부록 B npm 기본 사용법
- B.1 npm 공식 사이트
- B.2 npm 명령어
- B.2.1 npm 버전 확인
- B.2.2 도움말
- B.2.3 install 명령어
- B.2.4 remove 명령어
- B.2.5 init 명령어
- B.2.6 package.json을 이용한 설치
- B.2.7 특정 버전 설치
- 부록 C 윈도 환경에서 MariaDB 설치
- C.1 MariaDB 내려받기
- C.2 MariaDB 설치
- C.3 MariaDB 접속
- 부록 D 윈도 환경에서 cURL 설치
- D.1 cURL 내려받기
- D.2 cURL 명령어
- D.2.1 –v 옵션을 이용한 상세 조회
- D.2.2 –L 옵션을 이용한 redirect 따라가기
- D.2.3 –X 옵션을 이용한 메서드 지정
- D.2.4 –H 옵션을 이용한 헤더 지정
- 부록 E Visual Studio Code로 Node.js 개발
- E.1 윈도 환경에서 Visual Studio Code 설치
- E.2 Visual Studio Code에서 Node.js 개발