스프링 부트/스프링 WebFlux
스프링 부트 - WebFlux의 Non-Blocking 프로세스 구조
Spring MVC는 전통적인 Block I/O 방식으로, 일정량의 스레드 풀에서 요청이 들어올 경우 스레드를 할당하여 요청을 처리한다. 즉, 해당 스레드가 완전히 종료될때까지 스레드를 사용할 수 없다는 의미이며, 모든 스레드가 가득 찼을때 새로운 요청이 온다면 해당 스레드가 차단될 수 있다는 의미이다. 반면 Non-Blocking I/O 방식의 Spring WebFlux는 스레드가 차단되지 않기 때문에 적은 수의 고정된 스레드 풀을 사용하여 많은 요청 처리가 가능하다. 이것이 가능한 이유는 WebFlux는 이벤트 루프 방식을 사용하기 때문이다. Non-Blocking 방식은 아래와 같은 순서로 동작한다. 1. 클라이언트로부터 들어오는 요청을 핸들러가 전달 받는다.2. 전달받은 요청을 이벤트 루프에 푸시..
2025. 1. 9.