0. 개요와 이모저모

개요

목차

  1. 패러다임의 전환 (왜 쓰는가?)
  2. Project Reactor (핵심 엔진)
  3. WebFlux 프로그래밍 모델
  4. 데이터 액세스 및 외부 연동
  5. 예외 처리 및 테스트
  6. 심화 및 성능 최적화 (선택적)

목차

1단계: 패러다임의 전환 (왜 쓰는가?)

가장 먼저 'Thread per Request' 모델(MVC)과 'Event Loop' 모델(WebFlux)의 차이를 이해해야 합니다. 이 개념이 흔들리면 코드 전체가 이해되지 않습니다.

2단계: Project Reactor (핵심 엔진)

WebFlux는 Project Reactor라는 라이브러리 위에서 동작합니다. 사실상 WebFlux 공부의 70%는 이 라이브러리 학습입니다.


3단계: WebFlux 프로그래밍 모델

MVC와 비슷한 방식과 WebFlux 전용 방식 두 가지를 모두 알아야 합니다.


4단계: 데이터 액세스 및 외부 연동

WebFlux의 장점을 살리려면 DB와 외부 API 호출도 논블로킹이어야 합니다.


5단계: 예외 처리 및 테스트

비동기 환경에서는 Stack Trace가 끊기기 때문에 테스트와 디버깅이 어렵습니다. 전용 도구를 배워야 합니다.


6단계: 심화 및 성능 최적화 (선택적)

Appendix

  1. flatMap 정복: WebFlux에서 가장 많이 쓰이면서도 헷갈리는 연산자입니다. 비동기 작업의 순서를 보장하거나 병렬로 처리할 때 핵심입니다.

  2. 로그 확인: log() 연산자를 중간에 끼워 넣어 어떤 스레드에서 어떤 데이터가 흐르는지 관찰하는 것이 실력 향상에 큰 도움이 됩니다.

  3. Blocking 코드 주의: 리액티브 파이프라인 중간에 JDBC나 Thread.sleep 같은 블로킹 코드가 하나라도 섞이면 전체 성능이 급격히 저하됩니다. (BlockHound 같은 도구로 감지 가능)