inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

Blocking I/O 방식과 Non-Blocking I/O 방식 이해하기(2): Spring MVC vs Spring WebFlux

Spring MVC + Servlet 3.1 이상 model과 Spring Webflux

589

박건호
0

스프링 MVC + Servlet 3.1 이상 모델을 사용할 경우 비동기, 논블록킹이 가능하다고 들었습니다. Spring mvc내의 일부 getParameter, Filter 등의 함수나 일부 지원 api 들이 블로킹 api 들이 많기 때문에 Servlet 3.1 이상의 버전을 쓰더라도 Webflux만큼의 성능이 나오지 않는다고 구글링 하다보니 찾게 되었는데 이 정보가 정확한지 궁금합니다.

java spring project-reactor webflux

답변 1

0

Kevin

건호님, 안녕하세요?

솔직히 말씀드리면 Netty 이외에 Servlet 3.1 이상의 서버 엔진을 사용해 보지는 않았습니다. ^^;

 

다만, Spring MVC Framework은 기본적으로 Servlet API를 기반(서블릿이 Blocking I/O 방식을 사용하는 전통적인 방식)으로 하기 때문에 Fully Non-Blocking I/O 방식보다 성능이 떨어진다고 예상할 수 있습니다.

서버 엔진은 디폴트 서버 엔진인 Netty에서 다른 엔진으로 바꾼다고 하더라도 웹 프레임워크는 Spring MVC가 아닌 Spring WebFlux를 사용하는 것이 더 나은 성능을 위한 적절한 선택일 것 같다는 생각이 듭니다.

 

참고로 어느 구간에서 blocking이 되는지 궁금하시다면 BlockHound 같은 Java agent로 blocking 포인트를 찾아보시면 좋을 것 같습니다.

 

감사합니다.

방산 SW 개발자가 되기 위한 조언을 부탁드립니다!

1

88

1

JAVA로 백엔드 프로젝트

0

67

1

26년1회 실기 합격할수 있을까??ㅠㅠ

0

177

1

자바 실무 단계

0

314

2

진로가 큰 걱정입니다...

0

300

1

MVC 패턴을 정확히 익힐려면 어떻게 해야할까요?

0

353

1

공부 방향

0

320

1

선생님 조언 부탁드립니다.

0

287

0

안녕하세요! 실무와 관련되서 질문드립니다!

0

336

1

함수형 인터페이스 활용

0

357

1

WebFlux를 실무에 적용하기 전에 고민이 있습니다.

0

306

0

코딩테스트 준비

0

469

1