[TIL] 코드스테이츠 SEB BE Day 76

💡 Today I Will Learn

  • Spring WebFlux
  • Spring Data R2DBC

✏️ Check Box


📌 정리


Spring MVC와 비교하여 Spring Webflux에서는 여러 특징이 있다. 기본적으로 Non-Blocking 통신을 지원하며 Reactive Adapter를 이용하여 Reactive 라이브러리(Reactor 등)를 사용할 수 있다. WebFilter 방식으로 Spring Security를 사용할 수 있고, 완전한 Non-blocking 통신을 위해 R2DBC를 이용하여 데이터 액세스계층까지 확장하여 사용한다.

핸들러 메서드에 전달 받은 객체에 Blocking 요소가 포함되지 않게 RequestBody를 전달 받는 순간부터 Mono로 Wrapping하여 Non-Blocking으로 동작하도록 Operator 체인을 바로 연결해서 처리한다.

Spring R2DBC에서 엔티티 간의 연관 관계 매핑을 지원하지 않는 이유는 연관 관계 매핑이 적용되는 순간 내부적으로 Blocking 요소가 포함될 가능성이 있기 때문이다.

Spring Webflux는 획기적이지만 아직 MVC를 완벽하게? 이해하지못한 상태에서 접근하기에는 무리라고 판단된다. 다만 모르는 것보다 우선 알아두는 것이 물론 좋기에 찍어먹기 자료에도 열심히 임했다. 코드를 작성하며 느낀 바는 MVC를 WebFlux로 바꾸면서 최소한의 변경 포인트만 유지하고, 일관되게 접근할 수 있어 생각보다는 수월하였다.

🎯 Next Week


  • 웹 어플리케이션 설계

Back to [TIL] 코드스테이츠 SEB BE Day 75