스프링으로 시작하는 리액티브 프로그래밍
Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현
Regular price
$33.71
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
*리액티브 프로그래밍의 기본기를 확실하게 다진다*
리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 리액티브 시스템을 구축하기 위한 핵심 구성 요소입니다. 이 책은 스프링 리액티브 웹 애플리케이션 구현에 있어 중요한 역할을 하는 Reactor의 핵심 개념들을 쉽게 이해할 수 있도록 충분한 설명과 다양한 예제 코드, 마블 다이어그램 등을 제공합니다. 또한 Reactor에 대한 학습을 토대로 Spring WebFlux 기반의 Non-Blocking I/O 방식의 샘플 애플리케이션을 구현해 보면서 리액티브 프로그래밍 입문이라는 길로 자연스럽게 안내합니다
리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 리액티브 시스템을 구축하기 위한 핵심 구성 요소입니다. 이 책은 스프링 리액티브 웹 애플리케이션 구현에 있어 중요한 역할을 하는 Reactor의 핵심 개념들을 쉽게 이해할 수 있도록 충분한 설명과 다양한 예제 코드, 마블 다이어그램 등을 제공합니다. 또한 Reactor에 대한 학습을 토대로 Spring WebFlux 기반의 Non-Blocking I/O 방식의 샘플 애플리케이션을 구현해 보면서 리액티브 프로그래밍 입문이라는 길로 자연스럽게 안내합니다
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
『스프링으로 시작하는 리액티브 프로그래밍은』은 리액티브 프로그래밍을 통해 한 단계 성장한 자바 개발자가 되고자 하는 초급자를 위한 책이다. 복잡하게만 느껴졌던 자바 비동기 프로그래밍을 쉽게 설명하고 있고, 웹 애플리케이션 개발의 기초를 다질 수 있는 책이다.
목차
목차
지은이 소개
지은이의 말? ?
기술 감수자 소개? ?
기술 감수자의 말? ?
추천사 ?
일러두기? ?
이 책의 대상 독자? ?
이 책의 구성?
예제 코드 구성?
소프트웨어 버전?
주의 사항?
Part 01?리액티브 프로그래밍(Reactive Programming)
Chapter 01?리액티브 시스템과 리액티브 프로그래밍
1.1?리액티브 시스템(Reactive System)이란??
1.2?리액티브 선언문으로 리액티브 시스템 이해하기?
1.3?리액티브 프로그래밍(Reactive Programming)이란?? ?
1.4?리액티브 프로그래밍의 특징? ?
1.4.1?declarative programming? ?
1.4.2?data streams와 the propagation of change? ?
1.5?코드로 보는 명령형 프로그래밍 vs 선언형 프로그래밍? ?
1.5.1?명령형 프로그래밍? ?
1.5.2?선언형 프로그래밍? ?
1.6?리액티브 프로그래밍 코드 구성?
?
Chapter 02?리액티브 스트림즈(Reactive Streams)
2.1?리액티브 스트림즈(Reactive Streams)란?? ?
2.2?리액티브 스트림즈 구성요소? ?
2.3?코드로 보는 리액티브 스트림즈 컴포넌트? ?
2.3.1?Publisher? ?
2.3.2?Subscriber? ?
2.3.3?Subscription? ?
2.3.4?Processor? ?
2.4?리액티브 스트림즈 관련 용어 정의? ?
2.5?리액티브 스트림즈의 구현 규칙? ?
2.6?리액티브 스트림즈 구현체? ?
Chapter 03?Blocking I/O와 Non-Blocking I/O
3.1?Blocking I/O? ?
3.2?Non-Blocking I/O? ?
3.3?Spring Framework에서의 Blocking I/O와 Non-Blocking I/O? ?
3.4?Non-Blocking I/O 방식의 통신이 적합한 시스템? ?
3.4.1?대량의 요청 트래픽이 발생하는 시스템? ?
3.4.2?마이크로 서비스 기반 시스템?
3.4.3?스트리밍 또는 실시간 시스템?
Chapter 04?리액티브 프로그래밍을 위한 사전 지식
4.1?함수형 인터페이스(Functional Interface)? ?
4.2?람다 표현식(Lambda Expression)? ?
4.3?메서드 레퍼런스(Method Reference)? ?
4.4?함수 디스크립터(Function Descriptor)?
?
Part 02?Project Reactor
Chapter 05?Reactor 개요
5.1?Reactor란?? ?
5.2?Hello Reactor 코드로 보는 Reactor의 구성요소
? ?
Chapter 06?마블 다이어그램(Marble Diagram)
6.1?마블 다이어그램(Marble Diagram)이란?? ?
6.2?마블 다이어그램으로 Reactor의 Publisher 이해하기?
?
Chapter 07?Cold Sequence와 Hot Sequence
7.1?Cold와 Hot의 의미? ?
7.2?Cold Sequence? ?
7.3?Hot Sequence?
7.4?HTTP 요청과 응답에서 Cold Sequence와 Hot Sequence의 동작 흐름? ?
Chapter 08?Backpressure
8.1?Backpressure란?? ?
8.2?Reactor에서의 Backpressure 처리 방식? ?
8.2.1?데이터 개수 제어?
8.2.2?Backpressure 전략 사용? ?
Chapter 09?Sinks
9.1?Sinks란?? ?
9.2?Sinks 종류 및 특징?
?
Chapter 10?Scheduler
10.1?스레드(Thread)의 개념 이해? ?
10.2?Scheduler란?? ?
10.3?Scheduler를 위한 전용 Operator? ?
10.4?publishOn( )과 subscribeOn( )의 동작 이해? ?
10.5?Scheduler의 종류?
?
Chapter 11?Context
11.1?Context란?? ?
11.2?자주 사용되는 Context 관련 API? ?
11.3?Context의 특징? ?
Chapter 12?Debugging
12.1?Reactor에서의 디버깅 방법? ?
12.1.1?Debug Mode를 사용한 디버깅? ?
12.1.2?checkpoint(?) Operator를 사용한 디버깅? ?
12.1.3?log( ) Operator를 사용한 디버깅?
?
Chapter 13?Testing
13.1?StepVerifier를 사용한 테스팅? ?
13.2?TestPublisher를 사용한 테스팅? ?
13.3?PublisherProbe를 사용한 테스팅
? ?
Chapter 14?Operators
14.1?Operator란?? ?
14.2?Sequence 생성을 위한 Operator? ?
14.3?Sequence 필터링 Operator? ?
14.4?Sequence 변환 Operator? ?
14.5?Sequence의 내부 동작 확인을 위한 Operator? ?
14.6?에러 처리를 위한 Operator? ?
14.7?Sequence의 동작 시간 측정을 위한 Operator? ?
14.8?Flux Sequence 분할을 위한 Operator? ?
14.9?다수의 Subscriber에게 Flux를 멀티캐스팅(Multicasting) 하기 위한 Operator? ?
Part 03?Spring WebFlux
Chapter 15?Spring WebFlux 개요
15.1?Spring WebFlux의 탄생 배경? ?
15.2?Spring WebFlux의 기술 스택? ?
15.3?Spring WebFlux의 요청 처리 흐름? ?
15.4?Spring WebFlux의 핵심 컴포넌트? ?
15.5?Spring WebFlux의 Non-Blocking 프로세스 구조? ?
15.6?Spring WebFlux의 스레드 모델
? ?
Chapter 16?애너테이션 기반 컨트롤러
(Annotated Controller)
16.1?Spring MVC 기반 Controller? ?
16.2?Spring WebFlux 기반 Controller? ?
Chapter 17?함수형 엔드포인트(Functional Endpoint)
17.1?HandlerFunction을 사용한 request 처리? ?
17.2?request 라우팅을 위한 RouterFunction? ?
17.3?함수형 엔드포인트에서의 request body 유효성 검증? ?
Chapter 18?Spring Data R2DBC
18.1?R2DBC란?? ?
18.2?Spring Data R2DBC란?? ?
18.3?Spring Data R2DBC 설정?
18.4?Spring Data R2DBC에서의 도메인 엔티티 클래스 매핑?
18.5?R2DBC Repositories를 이용한 데이터 액세스?
18.6?R2dbcEntityTemplate을 이용한 데이터 액세스?
18.7?Spring Data R2DBC에서의 페이지네이션(Pagination) 처리?
?
Chapter 19?예외 처리
19.1?onErrorResume( ) Operator를 이용한 예외 처리?
19.2?ErrorWebExceptionHandler를 이용한 글로벌 예외 처리?
Chapter 20?WebClient
20.1?WebClient란?? ?
20.2?WebClient로 도서 정보 요청하기? ?
20.3?WebClient Connection Timeout 설정?
20.4?exchangeToMono( )를 사용한 응답 디코딩?
Chapter 21?Reactive Streaming 데이터 처리
찾아보기
지은이의 말? ?
기술 감수자 소개? ?
기술 감수자의 말? ?
추천사 ?
일러두기? ?
이 책의 대상 독자? ?
이 책의 구성?
예제 코드 구성?
소프트웨어 버전?
주의 사항?
Part 01?리액티브 프로그래밍(Reactive Programming)
Chapter 01?리액티브 시스템과 리액티브 프로그래밍
1.1?리액티브 시스템(Reactive System)이란??
1.2?리액티브 선언문으로 리액티브 시스템 이해하기?
1.3?리액티브 프로그래밍(Reactive Programming)이란?? ?
1.4?리액티브 프로그래밍의 특징? ?
1.4.1?declarative programming? ?
1.4.2?data streams와 the propagation of change? ?
1.5?코드로 보는 명령형 프로그래밍 vs 선언형 프로그래밍? ?
1.5.1?명령형 프로그래밍? ?
1.5.2?선언형 프로그래밍? ?
1.6?리액티브 프로그래밍 코드 구성?
?
Chapter 02?리액티브 스트림즈(Reactive Streams)
2.1?리액티브 스트림즈(Reactive Streams)란?? ?
2.2?리액티브 스트림즈 구성요소? ?
2.3?코드로 보는 리액티브 스트림즈 컴포넌트? ?
2.3.1?Publisher? ?
2.3.2?Subscriber? ?
2.3.3?Subscription? ?
2.3.4?Processor? ?
2.4?리액티브 스트림즈 관련 용어 정의? ?
2.5?리액티브 스트림즈의 구현 규칙? ?
2.6?리액티브 스트림즈 구현체? ?
Chapter 03?Blocking I/O와 Non-Blocking I/O
3.1?Blocking I/O? ?
3.2?Non-Blocking I/O? ?
3.3?Spring Framework에서의 Blocking I/O와 Non-Blocking I/O? ?
3.4?Non-Blocking I/O 방식의 통신이 적합한 시스템? ?
3.4.1?대량의 요청 트래픽이 발생하는 시스템? ?
3.4.2?마이크로 서비스 기반 시스템?
3.4.3?스트리밍 또는 실시간 시스템?
Chapter 04?리액티브 프로그래밍을 위한 사전 지식
4.1?함수형 인터페이스(Functional Interface)? ?
4.2?람다 표현식(Lambda Expression)? ?
4.3?메서드 레퍼런스(Method Reference)? ?
4.4?함수 디스크립터(Function Descriptor)?
?
Part 02?Project Reactor
Chapter 05?Reactor 개요
5.1?Reactor란?? ?
5.2?Hello Reactor 코드로 보는 Reactor의 구성요소
? ?
Chapter 06?마블 다이어그램(Marble Diagram)
6.1?마블 다이어그램(Marble Diagram)이란?? ?
6.2?마블 다이어그램으로 Reactor의 Publisher 이해하기?
?
Chapter 07?Cold Sequence와 Hot Sequence
7.1?Cold와 Hot의 의미? ?
7.2?Cold Sequence? ?
7.3?Hot Sequence?
7.4?HTTP 요청과 응답에서 Cold Sequence와 Hot Sequence의 동작 흐름? ?
Chapter 08?Backpressure
8.1?Backpressure란?? ?
8.2?Reactor에서의 Backpressure 처리 방식? ?
8.2.1?데이터 개수 제어?
8.2.2?Backpressure 전략 사용? ?
Chapter 09?Sinks
9.1?Sinks란?? ?
9.2?Sinks 종류 및 특징?
?
Chapter 10?Scheduler
10.1?스레드(Thread)의 개념 이해? ?
10.2?Scheduler란?? ?
10.3?Scheduler를 위한 전용 Operator? ?
10.4?publishOn( )과 subscribeOn( )의 동작 이해? ?
10.5?Scheduler의 종류?
?
Chapter 11?Context
11.1?Context란?? ?
11.2?자주 사용되는 Context 관련 API? ?
11.3?Context의 특징? ?
Chapter 12?Debugging
12.1?Reactor에서의 디버깅 방법? ?
12.1.1?Debug Mode를 사용한 디버깅? ?
12.1.2?checkpoint(?) Operator를 사용한 디버깅? ?
12.1.3?log( ) Operator를 사용한 디버깅?
?
Chapter 13?Testing
13.1?StepVerifier를 사용한 테스팅? ?
13.2?TestPublisher를 사용한 테스팅? ?
13.3?PublisherProbe를 사용한 테스팅
? ?
Chapter 14?Operators
14.1?Operator란?? ?
14.2?Sequence 생성을 위한 Operator? ?
14.3?Sequence 필터링 Operator? ?
14.4?Sequence 변환 Operator? ?
14.5?Sequence의 내부 동작 확인을 위한 Operator? ?
14.6?에러 처리를 위한 Operator? ?
14.7?Sequence의 동작 시간 측정을 위한 Operator? ?
14.8?Flux Sequence 분할을 위한 Operator? ?
14.9?다수의 Subscriber에게 Flux를 멀티캐스팅(Multicasting) 하기 위한 Operator? ?
Part 03?Spring WebFlux
Chapter 15?Spring WebFlux 개요
15.1?Spring WebFlux의 탄생 배경? ?
15.2?Spring WebFlux의 기술 스택? ?
15.3?Spring WebFlux의 요청 처리 흐름? ?
15.4?Spring WebFlux의 핵심 컴포넌트? ?
15.5?Spring WebFlux의 Non-Blocking 프로세스 구조? ?
15.6?Spring WebFlux의 스레드 모델
? ?
Chapter 16?애너테이션 기반 컨트롤러
(Annotated Controller)
16.1?Spring MVC 기반 Controller? ?
16.2?Spring WebFlux 기반 Controller? ?
Chapter 17?함수형 엔드포인트(Functional Endpoint)
17.1?HandlerFunction을 사용한 request 처리? ?
17.2?request 라우팅을 위한 RouterFunction? ?
17.3?함수형 엔드포인트에서의 request body 유효성 검증? ?
Chapter 18?Spring Data R2DBC
18.1?R2DBC란?? ?
18.2?Spring Data R2DBC란?? ?
18.3?Spring Data R2DBC 설정?
18.4?Spring Data R2DBC에서의 도메인 엔티티 클래스 매핑?
18.5?R2DBC Repositories를 이용한 데이터 액세스?
18.6?R2dbcEntityTemplate을 이용한 데이터 액세스?
18.7?Spring Data R2DBC에서의 페이지네이션(Pagination) 처리?
?
Chapter 19?예외 처리
19.1?onErrorResume( ) Operator를 이용한 예외 처리?
19.2?ErrorWebExceptionHandler를 이용한 글로벌 예외 처리?
Chapter 20?WebClient
20.1?WebClient란?? ?
20.2?WebClient로 도서 정보 요청하기? ?
20.3?WebClient Connection Timeout 설정?
20.4?exchangeToMono( )를 사용한 응답 디코딩?
Chapter 21?Reactive Streaming 데이터 처리
찾아보기
저자
저자
황정식
2010년부터 모바일 기반의 대학 통합 시스템, 블록체인 기반의 데이터 마켓 서비스 등 다양한 웹 애플리케이션 프로젝트를 수행해 온 시니어 백엔드 개발자입니다. 현재는 (주)코드스테이츠에서 미래의 백엔드 개발자를 꿈꾸는 학생들과 함께 교육 엔지니어로 즐거운 일상을 보내고 있습니다.
소프트웨어 개발에 대한 지식을 공유하기를 좋아합니다. 특히 수년 전 애플리케이션 개발에 사용한 리액티브 프로그래밍의 매력에 심취해 프로젝트 이후, RxJava를 깊이 공부하면서 알게 된 지식들을 공유하고, 리액티브 프로그래밍에
입문하고 싶어하는 분들에게 약간의 도움을 주고자 관련 지식들을 온라인 강의로 제작해 인프런에 오픈했습니다.
미래에 제 모습이 어떤 모습으로 변해 있을지 아직은 알 수없지만, 소프트웨어 개발이라는 영역 안에서 더 나은 삶을 살아가기 위해 현재 꾸준히 노력하며 살고 있습니다. 백발이 되어서도 소프트웨어를 개발할 수 있는 소프트웨어 엔지니어가 되기 위해 오늘도 열심히 노력하겠습니다
소프트웨어 개발에 대한 지식을 공유하기를 좋아합니다. 특히 수년 전 애플리케이션 개발에 사용한 리액티브 프로그래밍의 매력에 심취해 프로젝트 이후, RxJava를 깊이 공부하면서 알게 된 지식들을 공유하고, 리액티브 프로그래밍에
입문하고 싶어하는 분들에게 약간의 도움을 주고자 관련 지식들을 온라인 강의로 제작해 인프런에 오픈했습니다.
미래에 제 모습이 어떤 모습으로 변해 있을지 아직은 알 수없지만, 소프트웨어 개발이라는 영역 안에서 더 나은 삶을 살아가기 위해 현재 꾸준히 노력하며 살고 있습니다. 백발이 되어서도 소프트웨어를 개발할 수 있는 소프트웨어 엔지니어가 되기 위해 오늘도 열심히 노력하겠습니다
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

