스프링으로 시작하는 리액티브 프로그래밍 : Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현

스프링으로 시작하는 리액티브 프로그래밍 : Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현

$31.34
저자

황정식

저자:황정식
2010년부터모바일기반의대학통합시스템,블록체인기반의데이터마켓서비스등다양한웹애플리케이션프로젝트를수행해온시니어백엔드개발자입니다.현재는(주)코드스테이츠에서미래의백엔드개발자를꿈꾸는학생들과함께교육엔지니어로즐거운일상을보내고있습니다.
소프트웨어개발에대한지식을공유하기를좋아합니다.특히수년전애플리케이션개발에사용한리액티브프로그래밍의매력에심취해프로젝트이후,RxJava를깊이공부하면서알게된지식들을공유하고,리액티브프로그래밍에
입문하고싶어하는분들에게약간의도움을주고자관련지식들을온라인강의로제작해인프런에오픈했습니다.
미래에제모습이어떤모습으로변해있을지아직은알수없지만,소프트웨어개발이라는영역안에서더나은삶을살아가기위해현재꾸준히노력하며살고있습니다.백발이되어서도소프트웨어를개발할수있는소프트웨어엔지니어가되기위해오늘도열심히노력하겠습니다.

목차

지은이소개
지은이의말
기술감수자소개
기술감수자의말
추천사
일러두기
이책의대상독자
이책의구성
예제코드구성
소프트웨어버전
주의사항

Part01리액티브프로그래밍(ReactiveProgramming)

Chapter01리액티브시스템과리액티브프로그래밍
1.1리액티브시스템(ReactiveSystem)이란
1.2리액티브선언문으로리액티브시스템이해하기
1.3리액티브프로그래밍(ReactiveProgramming)이란
1.4리액티브프로그래밍의특징
1.4.1declarativeprogramming
1.4.2datastreams와thepropagationofchange
1.5코드로보는명령형프로그래밍vs선언형프로그래밍
1.5.1명령형프로그래밍
1.5.2선언형프로그래밍
1.6리액티브프로그래밍코드구성

Chapter02리액티브스트림즈(ReactiveStreams)
2.1리액티브스트림즈(ReactiveStreams)란
2.2리액티브스트림즈구성요소
2.3코드로보는리액티브스트림즈컴포넌트
2.3.1Publisher
2.3.2Subscriber
2.3.3Subscription
2.3.4Processor
2.4리액티브스트림즈관련용어정의
2.5리액티브스트림즈의구현규칙
2.6리액티브스트림즈구현체

Chapter03BlockingI/O와Non-BlockingI/O
3.1BlockingI/O
3.2Non-BlockingI/O
3.3SpringFramework에서의BlockingI/O와Non-BlockingI/O
3.4Non-BlockingI/O방식의통신이적합한시스템
3.4.1대량의요청트래픽이발생하는시스템
3.4.2마이크로서비스기반시스템
3.4.3스트리밍또는실시간시스템

Chapter04리액티브프로그래밍을위한사전지식
4.1함수형인터페이스(FunctionalInterface)
4.2람다표현식(LambdaExpression)
4.3메서드레퍼런스(MethodReference)
4.4함수디스크립터(FunctionDescriptor)

Part02ProjectReactor
Chapter05Reactor개요
5.1Reactor란
5.2HelloReactor코드로보는Reactor의구성요소

Chapter06마블다이어그램(MarbleDiagram)
6.1마블다이어그램(MarbleDiagram)이란
6.2마블다이어그램으로Reactor의Publisher이해하기

Chapter07ColdSequence와HotSequence
7.1Cold와Hot의의미
7.2ColdSequence
7.3HotSequence
7.4HTTP요청과응답에서ColdSequence와HotSequence의동작흐름

Chapter08Backpressure
8.1Backpressure란
8.2Reactor에서의Backpressure처리방식
8.2.1데이터개수제어
8.2.2Backpressure전략사용

Chapter09Sinks
9.1Sinks란
9.2Sinks종류및특징

Chapter10Scheduler
10.1스레드(Thread)의개념이해
10.2Scheduler란
10.3Scheduler를위한전용Operator
10.4publishOn()과subscribeOn()의동작이해
10.5Scheduler의종류

Chapter11Context
11.1Context란
11.2자주사용되는Context관련API
11.3Context의특징
Chapter12Debugging
12.1Reactor에서의디버깅방법
12.1.1DebugMode를사용한디버깅
12.1.2checkpoint()Operator를사용한디버깅
12.1.3log()Operator를사용한디버깅

Chapter13Testing
13.1StepVerifier를사용한테스팅
13.2TestPublisher를사용한테스팅
13.3PublisherProbe를사용한테스팅

Chapter14Operators
14.1Operator란
14.2Sequence생성을위한Operator
14.3Sequence필터링Operator
14.4Sequence변환Operator
14.5Sequence의내부동작확인을위한Operator
14.6에러처리를위한Operator
14.7Sequence의동작시간측정을위한Operator
14.8FluxSequence분할을위한Operator
14.9다수의Subscriber에게Flux를멀티캐스팅(Multicasting)하기위한Operator

Part03SpringWebFlux

Chapter15SpringWebFlux개요
15.1SpringWebFlux의탄생배경
15.2SpringWebFlux의기술스택
15.3SpringWebFlux의요청처리흐름
15.4SpringWebFlux의핵심컴포넌트
15.5SpringWebFlux의Non-Blocking프로세스구조
15.6SpringWebFlux의스레드모델

Chapter16애너테이션기반컨트롤러
(AnnotatedController)
16.1SpringMVC기반Controller
16.2SpringWebFlux기반Controller

Chapter17함수형엔드포인트(FunctionalEndpoint)
17.1HandlerFunction을사용한request처리
17.2request라우팅을위한RouterFunction
17.3함수형엔드포인트에서의requestbody유효성검증

Chapter18SpringDataR2DBC
18.1R2DBC란
18.2SpringDataR2DBC란
18.3SpringDataR2DBC설정
18.4SpringDataR2DBC에서의도메인엔티티클래스매핑
18.5R2DBCRepositories를이용한데이터액세스
18.6R2dbcEntityTemplate을이용한데이터액세스
18.7SpringDataR2DBC에서의페이지네이션(Pagination)처리

Chapter19예외처리
19.1onErrorResume()Operator를이용한예외처리
19.2ErrorWebExceptionHandler를이용한글로벌예외처리

Chapter20WebClient
20.1WebClient란
20.2WebClient로도서정보요청하기
20.3WebClientConnectionTimeout설정
20.4exchangeToMono()를사용한응답디코딩

Chapter21ReactiveStreaming데이터처리

찾아보기

출판사 서평

*리액티브프로그래밍의기본기를확실하게다진다*

리액티브프로그래밍은적은컴퓨팅파워로대량의요청트래픽을효과적으로처리할수있는리액티브시스템을구축하기위한핵심구성요소입니다.이책은스프링리액티브웹애플리케이션구현에있어중요한역할을하는Reactor의핵심개념들을쉽게이해할수있도록충분한설명과다양한예제코드,마블다이어그램등을제공합니다.또한Reactor에대한학습을토대로SpringWebFlux기반의Non-BlockingI/O방식의샘플애플리케이션을구현해보면서리액티브프로그래밍입문이라는길로자연스럽게안내합니다

『스프링으로시작하는리액티브프로그래밍은』은리액티브프로그래밍을통해한단계성장한자바개발자가되고자하는초급자를위한책이다.복잡하게만느껴졌던자바비동기프로그래밍을쉽게설명하고있고,웹애플리케이션개발의기초를다질수있는책이다.