실전! 스프링 5를 활용한 리액티브 프로그래밍
도서명:실전! 스프링 5를 활용한 리액티브 프로그래밍
저자/출판사:올레,도쿠카,이호르,로진스키/위키북스
쪽수:520쪽
출판일:2019-06-21
ISBN:9791158391591
목차
▣ 01장: 왜 리액티브 스프링인가?
왜 리액티브인가?
__메시지 기반 통신
반응성에 대한 유스케이스
왜 리액티브 스프링인가?
__서비스 레벨에서의 반응성
요약
▣ 02장: 스프링을 이용한 리액티브 프로그래밍 - 기본 개념
리액티브를 위한 스프링 프레임워크의 초기 해법
__관찰자(Observer) 패턴
__관찰자 패턴 사용 예
__@EventListener를 사용한 발행-구독 패턴
__@EventListener 활용한 응용 프로그램 개발
리액티브 프레임워크 RxJava
__관찰자 + 반복자 = 리액티브 스트림
__스트림의 생산과 소비
__비동기 시퀀스 생성하기
__스트림 변환과 마블 다이어그램
__RxJava 사용의 전제 조건 및 이점
__RxJava를 이용해 애플리케이션 다시 만들기
리액티브 라이브러리의 간략한 역사
리액티브의 전망
요약
▣ 03장: 스트림의 새로운 표준 - 리액티브 스트림
모두를 위한 반응성
__API 불일치 문제
__풀 방식과 푸시 방식
__흐름 제어
__해결책
리액티브 스트림의 기본 스펙
__리액티브 스트림 동작해 보기
__리액티브 스트림 기술 호환성 키트(TCK)
__JDK 9
리액티브 스트림을 활용한 비동기 및 병렬 처리
리액티브 전망의 변화
__RxJava의 변화
__Vert.x의 적응
__Ratpack의 개선
__리액티브 스트림 기반의 MongoDB 드라이버
__리액티브 기술 조합
요약
▣ 04장: 리액터 프로젝트 - 리액티브 앱의 기초
리액터 프로젝트의 간략한 역사
__리액터 프로젝트 버전 1.x
__리액터 프로젝트 버전 2.x
리액터 프로젝트 필수 요소
__프로젝트에 리액터 추가하기
__리액티브 타입 - Flux와 Mono
__Flux와 Mono 시퀀스 만들기
__리액티브 스트림 구독하기
__연산자를 이용해 리액티브 시퀀스 변환하기
__코드를 통해 스트림 만들기
__에러 처리하기
__배압 다루기
__Hot 스트림과 cold 스트림
__시간 다루기
__리액티브 스트림을 조합하고 변환하기
__Processor
__리액터 프로젝트 테스트 및 디버깅하기
__리액터 추가 기능
리액터 프로젝트 심화학습
__리액티브 스트림의 수명 주기
__리액터에서 스레드 스케줄링 모델
__프로젝트 리액터의 내부 구조
요약
▣ 05장: 스프링 부트 2와 함께하는 리액티브
성공의 열쇠는 신속하게 출발하는 것
__Spring Roo를 사용해 애플리케이션 개발 속도 향상
__빠르게 성장하는 애플리케이션에 대한 핵심 요소로서의 스프링 부트
스프링 부트 2.0에서의 리액티브
__스프링 코어 패키지에서의 리액티브
__웹에서의 리액티브
__스프링 데이터에서의 리액티브
__스프링 세션에서의 리액티브
__스프링 시큐리티에서의 리액티브
__스프링 클라우드에서의 리액티브
__스프링 테스트에서의 리액티브
__리액티브 모니터링하기
요약
▣ 06장: 웹플럭스 - 비동기 논블로킹 통신
리액티브 기반 서버 기술의 핵심: 웹플럭스
__리액티브 웹의 핵심
__리액티브 웹 MVC 프레임워크
__웹플럭스로 구현하는 순수한 함수형 웹
__WebClient: 논블로킹을 지원하는 통신 클라이언트
__리액티브 웹소켓 API
__웹소켓 경량화를 위한 리액티브 SSE
__리액티브 템플릿 엔진
__리액티브 웹 보****
__다른 리액티브 라이브러리와의 상호 작용
웹플럭스 vs. 웹 MVC
__프레임워크를 비교할 때는 법칙이 중요하다
__철저한 분석과 비교
웹플럭스 애플리케이션
__마이크로서비스 기반 시스템
__접속이 느린 클라이언트를 처리하는 시스템
__스트리밍 또는 실시간 시스템
__웹플럭스 실제 사용해 보기
요약
▣ 07장: 리액티브 방식으로 데이터베이스 사용하기
최근 데이터 처리 패턴
__도메인 기반 설계
__마이크로서비스 시대의 데이터 저장소
__다중 저장소 영속화
__서비스로서의 데이터베이스
__마이크로서비스 사이의 데이터 공유
데이터 조회를 위한 동기식 모델
__데이터베이스 액세스를 위한 와이어 프로토콜
__데이터베이스 드라이버
__JDBC
__스프링 JDBC
__스프링 데이터 JDBC
__JPA
__스프링 데이터 JPA
__Spring Data NoSQL
__동기 모델의 한계
__동기 모델의 장점
스프링 데이터로 리액티브하게 데이터 접근하기
__MongoDB 리액티브 리포지토리
__리포지토리 동작 조합하기
__리액티브 리포지토리 동작 원리
__리액티브 트랜잭션
__스프링 데이터 리액티브 커넥터
__제약 사항과 기대되는 개선 사항
__ADBA(Asynchronous Database Access)
__R2DBC(Reactive Relational Database Connectivity)
동기식 리포지토리를 리액티브 스타일로 변경하기
__rxjava2-jdbc 라이브러리 사용하기
__동기식 CrudRepository 래핑하기
리액티브 스프링 데이터 실습하기
요약
▣ 08장: 클라우드 스트림으로 확장하기
메시지 브로커, 메시지 기반 시스템의 핵심
__서버사이드 로드 밸런싱
__스프링 클라우드와 Ribbon을 이용한 클라이언트 사이드 로드 밸런싱
__탄력적이고 신뢰성 있는 메시지 전달 계층 역할의 메시지 브로커
__메시지 브로커의 현황
스프링 생태계와 연결해주는 스프링 클라우드 스트림
클라우드 환경에서의 리액티브 프로그래밍
__스프링 클라우드 데이터 플로
__스프링 클라우드 펑션을 활용한 잘게 쪼개진 애플리케이션
__스프링 클라우드 - 데이터 플로의 일부로서의 함수
리액티브 메시지 전달을 위한 낮은 지연 시간의 RSocket
__RSocket vs. 리액터-네티
__자바에서 RSocket 사용
__RSocket vs. gRPC
__스프링 프레임워크에서 RSocket 사용
__다른 프레임워크에서의 RSocket
__RSocket 요약
요약
▣ 09장: 리액티브 애플리케이션 테스트하기
리액티브 스트림을 테스트하기 어려운 이유
StepVerifier를 이용한 리액티브 스트림 테스트
__StepVerifier의 핵심 요소
__StepVerifier를 이용한 고급 테스트
__가상 시간 다루기
__리액티브 컨텍스트 검증하기
__웹플럭스 테스트
__WebTestClient를 이용해 컨트롤러 테스트하기
__웹소켓 테스트
요약
▣ 10장: 자! 드디어 릴리즈다
데브옵스(DevOps) 친화적인 앱의 중요성
리액티브 스프링 애플리케이션 모니터링
__스프링 부트 액추에이터(Spring Boot Actuator)
__마이크로미터(Micrometer)
__리액티브 스트림 모니터링하기
__스프링 클라우드 슬루스를 사용한 분산 추적
__미려한 UI를 지원하는 스프링 부트 어드민 2.x
클라우드에 배포하기
__아마존 웹서비스에 배포하기
__구글 쿠버네티스 엔진에 배포하기
__Pivotal Cloud Foundry에 배포하기
__쿠버네티스와 Istio를 넘어 FaaS를 위한 Knative
__성공적인 애플리케이션 배포를 위한 조언
요약