스프링 마이크로서비스 코딩 공작소 (스프링 부트와 스프링 클라우드를 이용한 마이크로서비스 모범 사례 | 2 판)

스프링 마이크로서비스 코딩 공작소 (스프링 부트와 스프링 클라우드를 이용한 마이크로서비스 모범 사례 | 2 판)

$38.00
Description
이론은 탄탄하게, 실습은 실무에 가깝게!
스프링 부트와 스프링 클라우드를 이용한 모범 사례를 직접 실행하며
마이크로서비스의 개념을 확실하게 익히자!
마이크로서비스는 서비스 개발, 그 이상(클라우드, 인프라, 자동화, 테스팅, 회복성, 보안, 인증, 로깅, 모니터링, 배포 등)을 필요로 한다. 클라우드를 사용하면 안정성, 생산성, 확장성, 유지 보수 등 여러 가지 면에서 유용하다. 책에서는 이러한 장점이 있는 스프링 클라우드를 사용해 마이크로서비스의 빌드와 배포를 최소화하도록 했다. 스프링 부트와 스프링 클라우드, 도커, 하시코프 볼트, 아파치 카프카, 키클록, 오픈 집킨, ELK 스택, 그라파나, 프로메테우스, AWS EKS, 깃허브/젠킨스를 사용해 쿠버네티스 기반의 마이크로서비스를 구축해보면서 개념과 실무를 동시에 배울 수 있다. 또한, 핵심 마이크로서비스 개발 패턴, 라우팅 패턴, 클라이언트 회복성 패턴, 구축/배치 패턴 등 주요 패턴도 함께 살펴본다. 이 책을 통해 어떻게 서비스를 만들고 개선해 나갈 수 있는지에 대한 다양한 고민들에 대한 해법을 찾을 수 있을 것이다.
저자

존카넬

JohnCarnell
소프트웨어아키텍트이며,GenesisCloud의개발자참여팀을이끌고있다.GenesisCloud고객과내부개발자에게클라우드기반의컨택센터와전화통신솔루션구축방법,클라우드에서개발모범사례를만드는방법을가르치는데대부분의시간을보낸다.AWS플래폼에서전화통신기반마이크로서비스를직접구축하고있으며,자바,Closure,Go를포함한여러기술플랫폼에서마이크로서비스설계및구축업무를담당하고있다.

목차

1장스프링,클라우드와만나다
1.1마이크로서비스아키텍처로진화
__1.1.1N-계층아키텍처
__1.1.2모놀리스아키텍처
__1.1.3마이크로서비스란?
__1.1.4애플리케이션구축방법을왜바꾸어야할까?
1.2스프링마이크로서비스
1.3우리가구축할것은무엇인가?
1.4이책의내용
__1.4.1이책에서배울내용
__1.4.2이책의연관성
1.5클라우드및마이크로서비스기반애플리케이션
__1.5.1스프링부트로마이크로서비스구축하기
__1.5.2클라우드컴퓨팅이란정확히무엇인가?
__1.5.3왜클라우드와마이크로서비스인가?
1.6마이크로서비스는코드작성이상을의미한다
1.7핵심마이크로서비스개발패턴
1.8마이크로서비스라우팅패턴
1.9마이크로서비스클라이언트회복성
1.10마이크로서비스보안패턴
1.11마이크로서비스로깅과추적패턴
1.12애플리케이션지표패턴
1.13마이크로서비스빌드/배포패턴
1.14요약

2장스프링클라우드와함께마이크로서비스세계탐험
2.1스프링클라우드란?
__2.1.1스프링클라우드컨피그
__2.1.2스프링클라우드서비스디스커버리
__2.1.3스프링클라우드로드밸런서와Resilience4j
__2.1.4스프링클라우드API게이트웨이
__2.1.5스프링클라우드스트림
__2.1.6스프링클라우드슬루스
__2.1.7스프링클라우드시큐리티
2.2스프링클라우드예제소개
2.3클라우드네이티브마이크로서비스구축방법
__2.3.1코드베이스
__2.3.2의존성
__2.3.3구성정보
__2.3.4백엔드서비스
__2.3.5빌드,릴리스,실행
__2.3.6프로세스
__2.3.7포트바인딩
__2.3.8동시성
__2.3.9폐기가능
__2.3.10개발및운영환경일치
__2.3.11로그
__2.3.12관리프로세스
2.4적절한예제도입
2.5스프링부트와자바로마이크로서비스만들기
__2.5.1환경설정
__2.5.2뼈대프로젝트시작하기
__2.5.3스프링부트애플리케이션부팅하기:부트스트랩클래스작성
2.6요약

3장스프링부트로마이크로서비스구축하기
3.1아키텍트이야기:마이크로서비스아키텍처설계
__3.1.1비즈니스문제분해
__3.1.2서비스세분화확정
__3.1.3서비스인터페이스설계
3.2마이크로서비스를사용하지말아야할때
__3.2.1분산시스템구축의복잡성
__3.2.2서버또는컨테이너스프롤
__3.2.3애플리케이션타입
__3.2.4데이터트랜잭션과일관성
3.3개발자이야기:스프링부트와자바
__3.3.1마이크로서비스의출입구만들기:스프링부트컨트롤러
__3.3.2라이선싱서비스에국제화추가하기
__3.3.3관련링크를표시하는스프링HATEOAS구현
3.4데브옵스이야기:혹독한런타임구축
__3.4.1서비스조립:마이크로서비스의패키징과배포
__3.4.2서비스부트스트래핑:마이크로서비스의구성관리
__3.4.3서비스등록과디스커버리:클라이언트가마이크로서비스와통신하는방법
__3.4.4마이크로서비스의상태전달
3.5모든관점통합하기
3.6요약

4장도커
4.1컨테이너또는가상머신?
4.2도커란?
4.3Dockerfiles
4.4도커컴포즈
4.5마이크로서비스와도커통합하기
__4.5.1도커이미지만들기
__4.5.2스프링부트로도커이미지생성하기
__4.5.3도커컴포즈로서비스실행하기
4.6요약

5장스프링클라우드컨피그서버로구성관리
5.1구성(그리고복잡성)관리
__5.1.1구성관리아키텍처
__5.1.2구현솔루션선택
5.2스프링클라우드컨피그서버구축
__5.2.1스프링클라우드컨피그부트스트랩클래스설정
__5.2.2스프링클라우드컨피그서버에파일시스템사용
__5.2.3서비스의구성파일설정
5.3스프링클라우드컨피그와스프링부트클라이언트통합
__5.3.1라이선싱서비스의스프링클라우드컨피그서비스의존성설정
__5.3.2스프링클라우드컨피그사용을위한라이선싱서비스구성
__5.3.3스프링클라우드컨피그서버를사용하여데이터소스연결
__5.3.4@ConfigurationProperties를사용하여프로퍼티직접읽기
__5.3.5스프링클라우드컨피그서버를사용하여프로퍼티갱신
__5.3.6깃과함께스프링클라우드컨피그서버사용
__5.3.7볼트와스프링클라우드컨피그서비스통합
__5.3.8볼트UI
5.4중요한구성정보보호
__5.4.1대칭암호화키설정
__5.4.2프로퍼티암호화와복호화
5.5마치며
5.6요약

6장서비스디스커버리
6.1서비스위치확인
6.2클라우드에서서비스디스커버리
__6.2.1서비스디스커버리아키텍처
__6.2.2스프링과넷플릭스유레카를사용한서비스디스커버리
6.3스프링유레카서비스구축
6.4스프링유레카에서비스등록
__6.4.1유레카RESTAPI
__6.4.2유레카대시보드
6.5서비스디스커버리를이용한서비스검색
__6.5.1스프링DiscoveryClient로서비스인스턴스검색
__6.5.2로드밸런서를지원하는스프링REST템플릿으로서비스호출
__6.5.3넷플릭스Feign클라이언트로서비스호출
6.6요약

7장나쁜상황에대비한스프링클라우드와Resilience4j를사용한회복성패턴
7.1클라이언트측회복성이란?
__7.1.1클라이언트측로드밸런싱
__7.1.2회로차단기
__7.1.3폴백처리
__7.1.4벌크헤드
7.2클라이언트회복성이중요한이유
7.3Resilience4j구현
7.4스프링클라우드와Resilience4j를사용하는라이선싱서비스설정
7.5회로차단기구현
__7.5.1조직서비스에회로차단기추가
__7.5.2회로차단기사용자정의
7.6폴백처리
7.7벌크헤드패턴구현
7.8재시도패턴구현
7.9속도제한기패턴구현
7.10ThreadLocal과Resilience4j
7.11요약

8장스프링클라우드게이트웨이를이용한서비스라우팅
8.1서비스게이트웨이란?
8.2스프링클라우드게이트웨이소개
__8.2.1스프링부트게이트웨이프로젝트설정
__8.2.2유레카와통신하는스프링클라우드게이트웨이구성
8.3스프링클라우드게이트웨이에서라우팅구성
__8.3.1서비스디스커버리를이용한자동경로매핑
__8.3.2서비스디스커버리를이용한수동경로매핑
__8.3.3동적으로라우팅구성을재로딩
8.4스프링클라우드게이트웨이의진정한능력:Predicate과FilterFactories
__8.4.1게이트웨이PredicateFactories
__8.4.2게이트웨이FilterFactories
__8.4.3사용자정의필터
8.5사전필터만들기
8.6서비스에서상관관계ID사용
__8.6.1유입되는HTTP요청을가로채는UserContextFilter
__8.6.2서비스에쉽게액세스할수있는HTTP헤더를만드는UserContext
__8.6.3상관관계ID전파를위한사용자정의RestTemplate과UserContextInterceptor
8.7상관관계ID를수신하는사후필터작성
8.8요약

9장마이크로서비스보안
9.1OAuth2소개
9.2키클록소개
9.3작게시작하기:스프링과키클록으로한개의엔드포인트보호
__9.3.1도커에키클록추가하기
__9.3.2키클록설정
__9.3.3클라이언트애플리케이션등록
__9.3.4O-stock사용자구성
__9.3.5O-stock사용자인증
9.4키클록으로조직서비스보호하기
__9.4.1스프링시큐리티와키클록JARs를서비스에추가
__9.4.2키클록서버접속을위한서비스구성
__9.4.3서비스에접근할수있는사용자및대상정의
__9.4.4액세스토큰전파
__9.4.5JWT의사용자정의필드파싱
9.5마이크로서비스보안을마치며
__9.5.1모든서비스통신에HTTPS/SSL을사용하라
__9.5.2서비스게이트웨이를사용하여마이크로서비스에접근하라
__9.5.3공개API및비공개API영역을지정하라
__9.5.4불필요한네트워크포트를차단해서마이크로서비스공격지점을제한하라
9.6요약

10장스프링클라우드스트림을사용한이벤트기반아키텍처
10.1메시징과EDA,마이크로서비스의사례
__10.1.1동기식요청-응답방식으로상태변화전달
__10.1.2메시징을사용한서비스간상태변화전달
__10.1.3메시징아키텍처의단점
10.2스프링클라우드스트림소개
10.3간단한메시지생산자와소비자작성
__10.3.1아파치카프카및레디스도커구성
__10.3.2조직서비스에서메시지생산자작성
__10.3.3라이선싱서비스에서메시지소비자작성
__10.3.4메시지서비스동작보기
10.4스프링클라우드스트림사용사례:분산캐싱
__10.4.1캐시검색을위한레디스
__10.4.2사용자정의채널설정
10.5요약

11장스프링클라우드슬루스와집킨을이용한분산추적
11.1스프링클라우드슬루스와상관관계ID
__11.1.1라이선싱및조직서비스에스프링클라우드슬루스추가
__11.1.2스프링클라우드슬루스의추적분석
11.2로그수집과스프링클라우드슬루스
__11.2.1동작하는스프링클라우드슬루스/ELK스택구현
__11.2.2서비스에서로그백구성
__11.2.3도커에서ELK스택애플리케이션정의및실행
__11.2.4키바나구성
__11.2.5키바나에서스프링클라우드슬루스의추적ID검색
11.3집킨을사용한분산추적
__11.3.1스프링클라우드슬루스와집킨의존성설정
__11.3.2집킨연결을위한서비스구성설정
__11.3.3집킨서버구성
__11.3.4추적레벨설정
__11.3.5집킨으로트랜잭션추적
__11.3.6더복잡한트랜잭션의시각화
__11.3.7메시징추적수집
__11.3.8사용자정의스팬
11.4요약

12장마이크로서비스배포
1

출판사 서평

이론은탄탄하게,실습은실무에가깝게!

스프링부트+스프링클라우드로시작하자
마이크로서비스는서비스개발,그이상(클라우드,인프라,자동화,테스팅,회복성,보안,인증,로깅,모니터링,배포등)을필요로한다.클라우드를사용하면안정성,생산성,확장성,유지보수등여러가지면에서유용하다.책에서는이러한장점이있는스프링클라우드를사용해마이크로서비스의빌드와배포를최소화한다.스프링부트와스프링클라우드로마이크로서비스를시작해보자.

현실적이고실용적인코드로학습하자
MSA/클라우드네이티브환경에서다양한프로젝트를경험한아키텍트와개발자로활동해온두명의저자가현업에서활용가능한최신컨테이너기반의마이크로서비스코드를수록했다.스프링부트와스프링클라우드2버전에호환되는실용적인예제를직접실행하며마이크로서비스의개념을확실히이해할수있다.

핵심패턴을익히자
마이크로서비스를개념적으로이해하고작성하는것은가능하지만,대규모마이크로서비스애플리케이션을클라우드에서배포하고운영하는것은코드를작성하는것이상을필요로한다.책에서는핵심마이크로서비스개발패턴,라우팅패턴,클라이언트회복성패턴,구축/배치패턴등주요개념을스프링부트와스프링클라우드로구현한다.