Spring

[메타코딩] 11강. 스프링 부트의 동작원리?

joje* 2023. 9. 25. 00:00

4. FrontController 패턴

: 최초 앞단에서 request 요청을 받아 필요한 클래스에 넘겨준다.왜? web.xml에 모든 내용을 정의하기가 어렵기 때문이다.

: 웹에서 request가 들어오면, 톰캣은 요청을 받아, request/response 객체를 만들어 응답을 처리하도록 한다.  이러한 방식은 BufferedReader/BufferedWriter 형태로 주고 받았던 데이터들을 객체화 시키므로써, 관련 내장함수를 이용할 수 있게 해준다.

: 이 때 새로운 요청이 생기기 때문에 request와 response가 새롭게 new 될 수 있고, 이로 인해 RequestDispatcher가 필요하게 된다. 

: RequestDispatcher는 필요한 클래스 요청이 도달했을 때, FrontController에 도착한 request와 response를 그대로 유지시켜준다.즉, RequestDispatcher는 페이지간 데이터 이동이 가능케 해준다.

 

: 스프링에서는 FrontController 패턴을 직접 짜거나, RequestDispatcher를 직접 구현할 필요가 없다. 왜냐하면 DispatcherServlet(FrontController + RequestDispatcher)이 있기 때문이다. DispatcherServlet이 자동 생성될 때, 수 많은 객체가 생성(IoC)되고, 이는 보통 필터들을 의미한다. 해당 필터들은 직접 등록할 수도 있고, 기본적으로 필요한 필터들은 자동 등록되게 된다.