코틀린 마이크로서비스 개발 (스프링 5와 스프링 부트 2.0을 활용해 코틀린으로 구축하는 | 리액티브 마이크로서비스)

코틀린 마이크로서비스 개발 (스프링 5와 스프링 부트 2.0을 활용해 코틀린으로 구축하는 | 리액티브 마이크로서비스)

$34.12
Description
어느새 자바 생태계의 주류 언어로 자리매김한 코틀린 언어를 바탕으로 마이크로서비스와 리액티브에 대해 알아본다. 기본 개념, 작동 원리와 장점을 살펴보는 것을 시작으로 스프링 부트 기반으로 마이크로서비스를 쉽게 만들어보고, 스프링 웹플럭스(WebFlux)를 사용해 넌블로킹 리액티브 마이크로서비스를 구축하는 방법을 알아본다. 이를 컨테이너 기반으로 운용하기 위한 개발, 테스트 모니터링과 배포까지 전 영역을 다룬다. 기본 개념 이해를 바탕으로 직접 만들어 보면서 새로운 개념과 기술을 체험할 수 있도록 구성돼 있다.
저자

후안안토니오메디나이글레시아스

20년전에인디게임개발자로시작해그이후해외4개국에서임베디드소프트웨어부터엔터프라이즈애플리케이션에이르기까지다양한분야에서일했다.소프트웨어장인정신에평생을바쳤다.2006년부터금융산업에서가장큰변화중하나를수행한재능있는전문가그룹과함께산탄데르테크놀로지(SantanderTechnology)에서일하고있다.현재는산탄데르테크놀로지UK의디지털혁신팀에서수석엔지니어로일하고있다.

목차

지은이소개
기술감수자소개
옮긴이소개
옮긴이의말
들어가며

1장.마이크로서비스의이해
__마이크로서비스란무엇인가
____SoA이해
____SoA와마이크로서비스의차이점
____일체형에서마이크로서비스로
__마이크로서비스원칙
____설계원칙정의
____비즈니스역량중심모델
____느슨한결합
____단일책임
____구현은닉
____격리
____독립적인배포가능
____장애를고려한빌드
____확장성
____자동화
__도메인주도설계
____도메인주도설계란
__리액티브마이크로서비스
____리액티브프로그래밍
____리액티브선언문
____리액티브프레임워크
____리액티브마이크로서비스
__클라우드네이티브마이크로서비스
____클라우드컴퓨팅
____컨테이너
____배포모델
__정리

2장.스프링부트2.0시작하기
__스프링부트애플리케이션만들기
____구성
____스프링이니셜라이저사용
____인텔리제이IDEA사용
__스프링부트애플리케이션의구조
____애플리케이션오브젝트생성
____스프링애플리케이션컨텍스트정의
____컴포넌트스캔이해
____컴포넌트사용
____의존관계자동설정
__스프링부트애플리케이션패키징및실행
____패키징
____WAR가아닌JAR로패키징하기
____스프링부트애플리케이션실행
____실행가능한JAR만들기
__애플리케이션설정
____설정값설정하기
____스프링표현언어의이해
____프로파일사용
____조건부빈만들기
____정리

3장.RESTful서비스만들기
__RestController의이해
____컨트롤러란
____RestController만들기
____컨트롤러이해
____경로와요청매개변수
____customers맵생성
____경로변수얻기
____경로변수이해
____요청매개변수정의
____요청매개변수이해
__HTTP동사와상태
____표준HTTP동사와상태
____HTTP동사처리
____서비스레이어구현
____HTTP상태처리하기
____JSON으로작업하기
____고객클래스에전화번호추가
____역직렬화이해
__오류처리
____컨트롤러어드바이스사용
____비즈니스예외생성
____컨트롤러어드바이스피하기
__정리

4장.리액티브마이크로서비스만들기
__스프링웹플럭스의이해
____스프링웹플럭스애플리케이션만들기
____네티사용하기
____RestController추가
____Customer서비스만들기
____블로킹은리액티브가아니다
__리액티브서비스만들기
____구독자와게시자
____단일객체게시하기
____서비스에서모노사용하기
____여러객체게시하기
____서비스에서플럭스사용하기
____리액티브하게객체수신
__함수형웹프로그래밍사용하기
____RouterFunction사용하기
____핸들러만들기
____리액티브서비스사용하기
____다중경로처리하기
____쿼리매개변수사용하기
____JSON본문처리하기
__리액티브오류처리하기
____핸들러에서오류캡처하기
____오류게시
__정리

5장.리액티브스프링데이터
__NoSQL데이터베이스
____SQL데이터베이스란
____NoSQL데이터베이스란
____몽고DB설치
____Mongo클라이언트와연결
____데이터베이스생성
____명령사용
__스프링데이터사용
____프로젝트설정
____연결구성
____몽고DB에명령어보내기
__리액티브리포지토리
____리포지토리생성하기
____리포지토리사용하기
____초기화완료
____ReactiveMongoTemplate사용
__CRUD연산을위한RESTfulAPI
____서비스재사용
____GET을READ로매핑
____POST를CREATE로매핑
____DELETE매핑
__고객검색
__정리

6장.클라우드네이티브마이크로서비스만들기
__스프링클라우드의이해
____클라우드네이티브프로그램이란무엇인가
____스프링클라우드아키텍처
____스프링클라우드넷플릭스
____스프링클라우드마이크로서비스만들기
__컨피그서버
____컨피그서버만들기
____설정얻기
____데이터암호화
____애플리케이션프로파일사용하기
__서비스탐색
____서비스탐색서버만들기
____탐색서버에연결하기
____스프링부트액추에이터사용하기
__게이트웨이
____게이트웨이만들기
____라우터정의
__정리

7장.도커생성
__도커로시작하기
____컨테이너이해
____도커설치
____도커시작하기
____이미지가져오기
____이미지관리
__마이크로서비스도커생성하기
____예제마이크로서비스만들기
____Dockerfile만들기
____마이크로서비스도커만들기
____마이크로서비스실행하기
____도커게시
____도커허브계정만들기
____도커게시
____도커와메이븐통합하기
__정리

8장.마이크로서비스확장
__확장가능한아키텍처
____확장의방향성
____확장설계
____독립적확장
____축소
__클라우드만들기
____스웜만들기
____서비스추가
____서비스의로그확인하기
____서비스삭제
__마이크로서비스를서비스로퍼블리시
____레지스트리만들기
____마이크로서비스만들기
____도커만들기
____서비스만들기
__서비스제어하기
____인스턴스확장
____서버스로그가져오기
____서비스제어하기
__정리

9장.스프링마이크로서비스테스트
__SpringBootTest이해
____간단한마이크로서비스만들기
____SpringBootTest이해
____빈테스트
____MockMvc사용하기
__모의빈사용하기
____왜mock을사용하는가
____목(mock)설치
____모의(mocked)값반환하기
____목(mock)호출검증하기
__유창한테스트
____Kluent추가하기
____서술적으로서비스테스트하기
____서술적으로컨트롤러테스트하기
__정리

10장.마이크로서비스모니터링
__모니터링의이해
____모니터링은무엇인가
____경고
____복구
____장애발생마이크로서비스만들기
__스프링부트액추에이터
____스프링부트액추에이터활성화
____액츄에이터의종단점이해
__JMX
____JMX이해
____JMX사용하기
__정리

11장.마이크로서비스배포
__설정
____깃허브계정생성
____깃설치
____오픈시프트계정만들기
____오픈시프트클라이언트다운로드
__애플리케이션빌드
____예제마이크로서비스만들기
____테스트추가
____깃허브에업로드하기
__오픈시프트에게시
____애플리케이션만들기
____애플리케이션관리
____애플리케이션업데이트
__정리

12장.모범사례
__코틀린관용구사용
____타입추론
____표현식
____기본매개변수
____람다
__스프링컨텍스트관리
____생성자주입
____명시적컨텍스트설정
__애플리케이션의계층화
____클래스이해
____분할
__효과적인테스트
____테스트유형이해
____단위테스트
____통합테스트
____E2E테스트
____그외테스트
____테스팅피라미드
____테스트주도개발
____행위/행동주도개발
__CI/CD처리
____지속적인통합
____지속적배포
____파이프라인
____대시보드
__정리

찾아보기

출판사 서평

★이책에서다루는내용★
▣마이크로서비스아키텍처및원리이해
▣스프링부트2.0과스프링프레임워크5.0을사용해코틀린으로마이크로서비스구축
▣스프링웹플럭스로넌블로킹(non-blocking)작업을수행하는리액티브마이크로서비스생성
▣스프링데이터를사용해몽고DB(MongoDB)에서리액티브하게데이터가져오기
▣JUnit과코틀린으로하는효과적인테스트
▣스프링클라우드로클라우드네이티브마이크로서비스생성
▣마이크로서비스의도커이미지빌드및게시
▣도커스웜(DockerSwarm)을활용한마이크로서비스확장
▣JMX를활용한마이크로서비스모니터링
▣오픈시프트온라인(OpenShiftOnline)에서마이크로서비스배포

★이책의대상독자★
마이크로서비스아키텍처에대한기본지식이있고현재엔터프라이즈급웹애플리케이션에서서비스를효과적으로구현하고자하는코틀린개발자라면,이책은당신을위한것이다.

★이책의구성★
1장,‘마이크로서비스이해’에서는마이크로서비스와그원리를소개한다.도메인주도설계(Domain-DrivenDesign),클라우드네이티브마이크로서비스와리액티브아키텍처를알아본다.
2장,‘스프링부트2.0시작하기’에서는코틀린에서처음마이크로서비스를개발하는데스프링부트2.0을사용해도움을준다.스프링부트를심도깊게알아볼것이고인텔리제이(IntelliJ)IDEA를사용해마이크로서비스를구축하는방법을살펴본다.
3장,‘RESTful서비스만들기’에서는클라우드네이티브마이크로서비스를RESTfulAPI로확장해다양한스프링구성요소를소개한다.
4장,‘리액티브마이크로서비스만들기’에서는넌블로킹리액티브마이크로서비스를생성한다.스프링웹플럭스(WebFlux)와리액터(Reactor)를사용해리액티브마이크로서비스를구축하는방법을알아본다.
5장,‘리액티브스프링데이터’에서는리액티브스프링데이터를사용해몽고DB같은NoSQL데이터베이스를작업하는방법에중점을둔다.그런다음RESTAPI의CRUD작업을리액티브하게생성하는리액티브마이크로서비스를향상시키는방법을살펴본다.
6장,‘클라우드네이티브마이크로서비스만들기’에서는클라우드네이티브마이크로서비스가무엇이고,스프링클라우드로쉽게구축하는방법을설명한다.
7장,‘도커만들기’에서는도커를설치및구성해서컨테이너를작성,게시,실행하는방법과메이븐(Maven)을사용해마이크로서비스를빌드할때이를통합하는방법에대해설명한다.
8장,‘마이크로서비스확장하기’에서는도커에서개인용클라우드를만드는방법과마이크로서비스를확장하고제어하는방법을살펴본다.
9장,‘스프링마이크로서비스테스트’에서는SpringBootTest와JUnit을사용해마이크로서비스를테스트하는방법을설명한다.Kluent를사용해더욱풍부한표현방식으로마이크로서비스를테스트하는방법을배운다.
10장,‘마이크로서비스모니터링’에서는실제운영시스템에서모니터링이중요한이유와스프링부트액추에이터(Actuator)와JMX를이용해모니터하고제어하는마이크로서비스를제공하는방법에대해설명한다.
11장,‘마이크로서비스배포’에서는마이크로서비스도커를오픈시프트온라인(OpenShiftOnline)에배포하는방법과마이크로서비스코드가변경될때깃허브를통합해자동배포하는방법을설명한다.
12장,‘모범사례’에서는마이크로서비스를만드는데사용할수있는업계모범사례를설명한다.