상세 컨텐츠

본문 제목

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

새로 나온 책

by 비제이퍼블릭 2023. 4. 12. 10:44

본문

 

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

부제 Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현

저자 황정식

출판사 비제이퍼블릭

출간/배본가능일 2023411

정가 30,000

페이지 520

판형 173*230

ISBN 979-11-6592-204-7 (93000)

 

관련분류 카테고리 분류

국내도서 IT 모바일 > 웹사이트 > 웹기획

국내도서 IT 모바일 > 컴퓨터 공학 > 소프트웨어 공학

국내도서 IT 모바일 > 프로그래밍 언어 > 프로그래밍 교육

 

 

 

책소개

 

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

 

 

 리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는 리액티브 시스템을 구축하기 위한 핵심 구성 요소입니다. 이 책은 스프링 리액티브 웹 애플리케이션 구현에 있어 중요한 역할을 하는 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 데이터 처리 

 

찾아보기

 

         

저자 소개

 

황정식

 

2010년부터 모바일 기반의 대학 통합 시스템, 블록체인 기반의 데이터 마켓 서비스 등 다양한 웹 애플리케이션 프로젝트를 수행해 온 시니어 백엔드 개발자입니다. 현재는 ()코드스테이츠에서 미래의 백엔드 개발자를 꿈꾸는 학생들과 함께 교육 엔지니어로 즐거운 일상을 보내고 있습니다.

소프트웨어 개발에 대한 지식을 공유하기를 좋아합니다. 특히 수년 전 애플리케이션 개발에 사용한 리액티브 프로그래밍의 매력에 심취해 프로젝트 이후, RxJava를 깊이 공부하면서 알게 된 지식들을 공유하고, 리액티브 프로그래밍에

입문하고 싶어하는 분들에게 약간의 도움을 주고자 관련 지식들을 온라인 강의로 제작해 인프런에 오픈했습니다.

미래에 제 모습이 어떤 모습으로 변해 있을지 아직은 알 수없지만, 소프트웨어 개발이라는 영역 안에서 더 나은 삶을 살아가기 위해 현재 꾸준히 노력하며 살고 있습니다. 백발이 되어서도 소프트웨어를 개발할 수 있는 소프트웨어 엔지니어가 되기 위해 오늘도 열심히 노력하겠습니다

 

출판사 리뷰

 

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

 

관련글 더보기

댓글 영역