서브메뉴

본문

실전! 스프링 5를 활용한 리액티브 프로그래밍 (리액티브 애플리케이션 개발부터 클라우드 배포와 모니터링까지)
실전! 스프링 5를 활용한 리액티브 프로그래밍 (리액티브 애플리케이션 개발부터 클라우드 배포와 모니터링까지)
저자 : 올레 도쿠카|이호르 로진스키
출판사 : 위키북스
출판년 : 2019
ISBN : 9791158391591

책소개

리액티브 시스템을 탐험하고 스프링 부트와 스프링 클라우드를 사용해 효율적인 마이크로 서비스를 만들어 보자!

오늘날 기업은 어떤 상황에도 높은 응답성을 유지할 수 있는 새로운 유형의 시스템이 필요합니다. 리액티브 프로그래밍을 이용하면 이를 달성할 수 있습니다. 이러한 시스템 개발은 복잡하며 도메인에 대한 깊은 이해를 필요로 합니다. 스프링 프레임워크 개발자들은 응답성 높은 시스템을 만들기 위해 리액터 프로젝트를 제안하고 출시했습니다.

이 책은 스프링을 이용한 리액티브 프로그래밍의 기본으로 시작합니다. 이 책을 통해 스프링 5 프레임워크와 함께 웹플럭스, 스프링 부트와 같은 도구를 활용해 효율적인 리액티브 시스템 구축의 무한한 가능성을 확인하게 될 것입니다. 아울러 다양한 리액티브 프로그래밍 기법을 배우고, 이를 데이터베이스 및 서버 간 통신에 적용해 볼 것입니다. 마지막으로 스프링 클라우드 스트림을 이용해 시스템을 확장하는 방법과 독립적인 고성능 리액티브 마이크로 서비스를 운영하는 방법까지 익힐 것입니다.

이 책의 마지막 페이지를 넘기고 나면 스프링 5.1에 포함된 리액티브 혁명에 동참할 수 있을 만큼 독자 여러분의 역량이 높아져 있음을 느끼게 될 것입니다!
[교보문고에서 제공한 정보입니다.]

출판사 서평

리액티브 시스템을 탐험하고 스프링 부트와 스프링 클라우드를 사용해 효율적인 마이크로 서비스를 만들어 보자!



오늘날 기업은 어떤 상황에도 높은 응답성을 유지할 수 있는 새로운 유형의 시스템이 필요합니다. 리액티브 프로그래밍을 이용하면 이를 달성할 수 있습니다. 이러한 시스템 개발은 복잡하며 도메인에 대한 깊은 이해를 필요로 합니다. 스프링 프레임워크 개발자들은 응답성 높은 시스템을 만들기 위해 리액터 프로젝트를 제안하고 출시했습니다.



이 책은 스프링을 이용한 리액티브 프로그래밍의 기본으로 시작합니다. 이 책을 통해 스프링 5 프레임워크와 함께 웹플럭스, 스프링 부트와 같은 도구를 활용해 효율적인 리액티브 시스템 구축의 무한한 가능성을 확인하게 될 것입니다. 아울러 다양한 리액티브 프로그래밍 기법을 배우고, 이를 데이터베이스 및 서버 간 통신에 적용해 볼 것입니다. 마지막으로 스프링 클라우드 스트림을 이용해 시스템을 확장하는 방법과 독립적인 고성능 리액티브 마이크로 서비스를 운영하는 방법까지 익힐 것입니다.



이 책의 마지막 페이지를 넘기고 나면 스프링 5.1에 포함된 리액티브 혁명에 동참할 수 있을 만큼 독자 여러분의 역량이 높아져 있음을 느끼게 될 것입니다!



★ 이 책에서 다루는 내용 ★

◎ 리액티브 시스템과 리액티브 프로그래밍 간의 차이점

◎ 리액티브 시스템이 주는 혜택과 그 응용 방법

◎ 스프링 5에서 리액티브 프로그래밍을 사용하는 방법

◎ 리액터 프로젝트에 대한 이해

◎ 스프링 5와 리액터 프로젝트를 사용해 리액티브 시스템을 만드는 방법

◎ 스프링 클라우드로 효율적인 리액티브 마이크로 서비스 제작

◎ 리액티브 애플리케이션을 테스트, 릴리스, 모니터링하는 방법
[알라딘에서 제공한 정보입니다.]

목차정보

▣ 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

__성공적인 애플리케이션 배포를 위한 조언

요약
[알라딘에서 제공한 정보입니다.]