Go 언어를 활용한 마이크로서비스 개발
도서명:Go 언어를 활용한 마이크로서비스 개발
저자/출판사:닉,잭슨/에이콘출판
쪽수:460쪽
출판일:2018-07-27
ISBN:9791161751900
목차
1장. 마이크로서비스 소개
__net/http로 간단한 웹 서버 만들기
__JSON 읽기 및 쓰기
____Go 구조체를 JSON으로 마샬링하기
____JSON을 Go 구조체로 언마샬링하기
__net/http를 사용한 라우팅
____경로
____편리한 핸들러
____FileServer
____NotFoundHandler
____RedirectHandler
____StripPrefix
____TimeoutHandler
____정적 파일 핸들러
____핸들러 만들기
__컨텍스트
____Background
____WithCancel
____WithDeadline
____WithTimeout
____WithValue
____컨텍스트 사용하기
__Go 표준 라이브러리의 RPC
____간단한 RPC 예제
____HTTP를 통한 RPC
____HTTP를 통한 JSON-RPC
__요약
2장. 좋은 API 디자인하기
__RESTful API
____URI
____URI 형식
____REST 서비스를 위한 URI 경로 설계
____HTTP 동사
____URI query design
____응답 코드
____HTTP 헤더
____자바스크립트에서 API에 접근하기
__RPC API
____RPC API 디자인
____Filtering
__API 버전 관리
____시맨틱 버전 관리
____REST API의 버전 관리 형식
____RPC API 버전 관리 형식
__객체 타입 표준화
____날짜
__API 문서화
____REST 기반 API
____RPC 기반 API
__요약
3장. Docker 소개
__Docker 컨테이너 소개
__Docker 설치
__Docker 볼륨
____유니온 파일 시스템
____볼륨 마운트
__Docker 포트
__이름을 지정해 시작한 컨테이너 제거하기
__Docker 네트워킹
____브리지 네트워킹
____호스트 네트워킹
____네트워크 단절
____오버레이 네트워크
____사용자 정의 네트워크 드라이버
____사용자 정의 브리지 네트워크 만들기
__Dockerfiles 작성
____Docker용 애플리케이션 코드 빌드하기
____Dockerfiles로 이미지 빌드하기
____컨테이너에서 데몬 실행하기
__Docker Compose
____리눅스에 Docker Compose 설치하기
____서비스 시작
____compose 파일의 위치 지정
____프로젝트 이름 지정
__요약
4장. 테스트
__테스트 피라미드
____단위 테스트
____의존성 주입과 모의 객체 만들기
____코드 커버리지
____Docker Compose로 테스트하기
__벤치마킹 및 프로파일링
____벤치마크
____프로파일링
__요약
5장. 공통 패턴
__실패에 대비한 설계
__패턴
____이벤트 처리
____타임 아웃
____백 오프
____회로 차단
____상태 점검
____쓰로틀링
____서비스 탐색
____부하 분산
____캐싱
__요약
6장. 마이크로서비스 프레임워크
__좋은 마이크로서비스 프레임워크의 조건
__Micro
____설정
____코드 생성
____도구 지원(CI/CD, 크로스 플랫폼)
____유지보수 가능성
____형식(REST/RPC)
____패턴
____언어 독립성
____다른 프레임워크와의 인터페이스 기능
____효율성
____품질
____오픈 소스
____보****
____지원
____확장성
____Micro에 대해 배운 것
__Kite
____설정
____코드 생성
____도구 지원
____유지보수 가능성
____형식
____패턴
____언어 독립성
____효율성
____품질
____오픈 소스
____보****
____지원
____확장성
____Kite 종합
__gRPC
____설정
____코드 생성
____도구 지원
____유지보수 가능성
____형식
____패턴
____언어 독립성
____효율성
____품질
____오픈 소스
____보****
____지원
____확장성
____gRPC에 대한 정리
__요약
7장. 로깅 및 모니터링
__로깅 모범 사례
__측정지표
____측정 지표로 가장 잘 표현되는 데이터 타입
____명명 규칙
____저장소 및 조회
____Grafana
__로깅
____상호 연관 ID를 사용한 분산 트레이스
____Elasticsearch, Logstash 및 Kibana(ELK)
____Kibana
__예외
____패닉 및 복구
__요약
8장. 보****
__암호화 및 서명
____대칭 키 암호화
____공개 키 암호화
____X.509 디지털 인증서
____TLS / SSL
__외부에 대한 보****
____2계층 또는 3계층 방화벽
____웹 애플리케이션 방화벽
____API 게이트웨이
____DDoS 방지
__애플리케이션 보****
____예방
____탐지
____대응
____복구
____권한 혼동
____공격자가 방화벽을 우회 할 수 있는 방법
__시나리오
____입력 유효성 검사
____TLS
____데이터 저장소 보****
____OWASP
____인증 및 권한 부여
____암호 해싱
____JWT
____보****메시지
____공유 암호
____대용량 메시지의 비대칭 암호화
__유지 보수
____컨테이너 패치
____소프트웨어 업데이트
____애플리케이션 코드 패치
____로깅
__요약
9장. 이벤트 주도 아키텍처
__동기식과 비동기식 처리의 차이점
____동기식 처리
____비동기식 처리
__비동기 메시지의 유형
____풀/큐 메시징
____푸시 메시징
__명령과 조회의 역할 분리(CQRS)
__도메인 주도 설계
____DDD의 정의
____기술적 부채
____DDD의 세부 구조
__소프트웨어
____Kafka
____NATS.io
____AWS SNS/SQS
____Google Cloud Pub/Sub
__요약
10장. 지속적인 딜리버리
__지속적인 딜리버리의 개념
____수동 배포
____지속적인 딜리버리의 이점
____지속적인 딜리버리의 여러 관점
____지속적인 딜리버리 프로세스
____개요
__컨테이너 오케스트레이션의 정의
____컨테이너 오케스트레이션의 옵션
__불변 인프라의 정의
__Terraform
____공급자
____Terraform 구성 엔트리 포인트
____VPC 모듈
____출력 변수
____인프라 구축
__예제 애플리케이션
____지속적인 딜리버리 작업 흐름
__요약