현재 사내 백엔드 프로젝트의 메인 기술 스택으로 Spring WebFlux를 사용 중이다.
최근 잠시 주말에 시간이 생겨서 WebFlux와 리액티브 프로그래밍에 대해 좀 더 살펴볼 기회가 생겼다.
사실 이 책 자체는 사놓은지는 오래 되었는데 이제서야 시간이 좀 생겨서 읽게 되었다.
책 제목은 아래와 같다.
스프링으로 시작하는 리액티브 프로그래밍 (Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현)

https://product.kyobobook.co.kr/detail/S000201399476
우선 내용 자체는 굉장히 심플하다.
제목이 스프링으로 시작한다고 해서 Spring WebFlux에 대한 내용이 많지는 않다. WebFlux에 대한 내용은 마지막 챕터에 배치되어있는데 저자는 그 이유를 WebFlux를 쓰기 전에 리액티브에 대해 먼저 알고 시작해야한다고 말하고 있다.
저자가 이렇게 구성한 이유에 대해 동의한다. 나도 프로젝트 내에 도입된 WebFlux를 쓰고 있지만 리액티브라는 개념에 대한 이해가 없던 상태에서 사용법만 어떻게든 맞춰서 쓰고 있던 터라 계속 찜찜한 상태였다. 특히 기존에 사용하던 기술과는 살짝 패러다임이 다른 기술이라서 리액티브에 대한 개념 자체를 알고 가야한다.
(Backpressure는 뭔지? cold ? hot sequence는 뭔지? 등등에 대해 모르고 있었다면 이 책을 추천한다.)
그래서 먼저 리액티브의 개념에 대해 간략하게 훑고 가장 많은 페이지를 WebFlux의 근간이 되는 Project Reactor 라이브러리의 사용법에 대해 할애한다.
Reactor의 사용법에 대한 예제들이 마음에 들었다.
다만 publishOn과 subscribeOn의 개념에 대해서는 살짝 이해가 되지 않았다. 책의 예제와 설명만으로는 조금 부족하여 개인적으로 좀 더 찾아봤는데 이해는 한 것 같은데 조금 찜찜한 것 같은 기분이 든다.
그런 구성으로 진행되고 마지막 챕터에서야 WebFlux에 대해 다루는데 여기서 WebClient에 대해 다뤄준 부분이 좋았다. 우리 프로젝트 내에서 조금 고쳐볼만한 곳이 WebClient 쪽이라고 생각되었고 실제로 이 책에서 공부했던 내용 덕분에 코드 리뷰 중 스스로 고민하는 포인트가 조금 깊어질 수 있었다.
간단하고 담백한 책이다. 너무 하드하지 않고 시간날때 간단하게 보고 기분좋게 마무리지을 수 있는 책이다.
약간 건강식 샐러드 같은? 그런 느낌의 책이다.
개인적으로 리액티브에 대해 조금 더 공부해보고 싶다면 인터넷으로 더 찾아보길 바란다. reactive manifesto부터 읽어보고 WebFlux 내 event loop이 어떻게 처리되는지? Virtual Thread가 있다고 해서 WebFlux가 무용지물이 되는건지? 이런 키워드들로 검색해보면 좋을 것 같다.
언급한 키워드 중 하나인 Virtual Thread vs WebFlux 에 대한 내 생각을 미리 적어두자면,
Virtual Thread 자체는 해당 가상 스레드 자체가 Non-Blocking이 아니지만 아주 싼 비용으로 Blocking (tiny and cheap) Thread를 많이 생성할 수 있다는 관점에서의 이점을 얻을 수 있을 뿐이다. 그렇다고 해서 Virtual Thread가 Backpressure 이점까지 가져갈 수 있는 것은 아니다. 마구 쏟아져들어오는 요청을 젠틀하게 받아주기 위한 BackPressure의 장점만 남게 되었지만 이것 만으로도 Webflux를 쓸 이점은 아직 유효해보인다.
뭐 사실 좋게 이야기했지만 전체 프로젝트 스택을 Reactive한 스택으로만 맞춰서 구성해야하는 건 여전히 고통이다. 구간마다 블로킹이 있는지 주의하며 짜야하며 라이브러리를 잘 선택해야한다. 라이브러리 선택하다보면 리액티브 생태계는 아직 미성숙하다는 걸 느낄 수 있을 거다. 그리고 메인 서버에 사용하기 보다는 많은 IO가 몰리는 핵심 구역에 위치해야할 프로젝트가 생긴다면, "필요할때만" 이 기술을 도입하는 것이 현명하다는 생각이 든다.
도움이 많이 되었고 좋은 책을 만들어주셔서 감사합니다. ^ _ ^ (꾸벅)
'dev.book' 카테고리의 다른 글
| [책] 그린 소프트웨어 Building Green Software (1) | 2026.01.03 |
|---|---|
| [책] 실패를 통과하는 일 리뷰/서평 (0) | 2025.09.17 |
| [기술서적] readITzine #3 - 앞으로 계속 나아가기 (0) | 2022.01.22 |
| [기술서적] 파이썬 알고리즘 인터뷰 - 박상길 (0) | 2021.08.19 |
| [기술서적] 스프링 퀵 스타트 - 채규태 (0) | 2021.08.19 |