스프링으로 시작하는 리액티브 프로그래밍

황정식 (지은이) | 비제이퍼블릭 | 2023년 4월 정가 30,000원 판매가 27,000원 배송비 0원 (0원 이상 무료) 페이지 520쪽 판형 173*230mm 988g ISBN 9791165922047 상태 새책 or 중고 수량 합계 27,000

책소개

스프링 리액티브 웹 애플리케이션 구현에 있어 중요한 역할을 하는 Reactor의 핵심 개념들을 쉽게 이해할 수 있도록 충분한 설명과 다양한 예제 코드, 마블 다이어그램 등을 제공한다. 또한 Reactor에 대한 학습을 토대로 Spring WebFlux 기반의 Non-Blocking I/O 방식의 샘플 애플리케이션을 구현해 보면서 리액티브 프로그래밍 입문이라는 길로 자연스럽게 안내한다.

저자소개

황정식 (지은이)  
신간알리미 신청

출판사소개

목차

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

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 데이터 처리

찾아보기

더보기

배송

- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.

상품 품절

- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.

주문취소/변경

- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.

반품/교환

- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.

반품/교환 불가 사유

- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

소비자 피해보상 환불 지연에 따른 배상

- 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리합니다.
- 대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리합니다.

Copyright © 2022 이츠북. All Rights Reserved.