개발자는 기록이 답이다
패스트캠퍼스 환급챌린지 24일차 미션 (2월 24일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기 본문
패스트캠퍼스 환급챌린지 24일차 미션 (2월 24일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기
slow-walker 2024. 2. 24. 23:29spring webflux구조
Spring Webflux는 어떻게 구성되어 있을까?

AutoConfiguration으로 알아보는 의존 그래프
- AutoConfiguration : Spring webflux를 위해 필수적으로 제공되어야 하는 설정
먼저 WebFluxAutoConfiguration부터 살펴보자


ReactiveWebServerFactoryAutoConfiguration가 먼저 동작하고 나서 WebFluxAutoConrigufation이 동작한다


ReactiveWebServerFactoryAutoConfiguration을 들어가보면 tomcat, jetty, undertow, netty 4가지의 의존을 갖고 있는걸 볼 수 있다. Webflux는 이 4가지를 통해 서버가 제공된다는 것을 파악할 수 있다.


EmbeddedNetty의 경우에는 내부적으로 NettyReactiveWebServerFactory를 가지고 있다.
즉, EmbeddedNetty가 등록될때 NettyReactiveWebServerFactory가 같이 bean으로 등록된다는 것을 통해 어떻게 Webflux가 구성되어있는지 힌트를 얻을 수 있다.

NettyReactiveWebServerFactory 는 내부적으로 WebServer를 가지고 있다.
WebServer는 HttpServer라는 이름인데, reactor.netty로 부터 제공받고 있다.

reactor.netty에서 제공하는 HttpServer를 생성하고, ReactorHttpHandlerAdapterHandler를 이용해서 handlerAdapter를 주입해서 그걸 기반으로 NettyWebserver를 만들고 반환한다.
그러면 Reactor Netty에 대해 알아보면 Webflux에서 어떻게 서버가 뜨는지 알 수 있다.
※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. https://bit.ly/48sS29N