기술면접

Spring MVC 프레임워크의 요청처리 과정

검은고양이개발자 2023. 3. 13. 09:38
반응형

 

1. 클라이언트가 웹 브라우저에서 HTTP 요청을 전송

2. DispatcherServlet 이 이 요청을 받아들임

3. DispatcherServlet은 요청 처리를 위해 HandlerMapping에게 요청을 전달

4. HandlerMapping은 요청 URL과 일치하는 컨트롤러(Controller)를 찾아서 DispatcherServlet에게 반환

5. DispatcherServlet은 HandlerAdapter에게 Controller 호출을 위임

6. HandlerAdapter는 Controller를 호출해서 Model 데이터와 View 이름을 반환

7. DispatcherServlet 은 ViewResolver에게 view 이름을 전달하며 검색 요청

8. ViewResolver는 View 이름을 실제 View 객체로 변환

9. DispatcherServlet 은 View를 실행하여 결과를 클라이언트에게 반환

 

Spring MVC의 구성 요소

 

DispatcherServlet : 클라이언트의 요청을 받아들이고, 요청을 처리하기 위해 다른 구성 요소들을 호출합니다.

HandlerMapping : 요청 URL과 일치하는 컨트롤러를 찾아주는 역할을 합니다.

Controller : 요청을 처리하는 비즈니스 로직을 수행하는 컴포넌트입니다.

Model : 컨트롤러가 처리한 결과를 저장하는 객체입니다.

ViewResolver : View 이름을 실제 View 객체로 변환해 주는 역할을 합니다.

View : 컨트롤러가 처리한 결과를 보여주는 역할을 합니다.

 

 

 

DispatcherServlet 한테는 어떻게 요청전송하나?

 

클라이언트가 HTTP 요청을 서버에 보낼 때, 요청 URL에는 일반적으로 콘텍스트경로(context path)와 서블릿 경로(servlet path)가 포함된다.

 

컨텍스트 경로는 웹 애플리케이션의 이름을 나타내며, 서블릿 경로는 요청을 처리할 서블릿의 이름을 나타냅니다. 

예를 들어, 'http://localhost:8080/myapp/hello'와 같은 요청 URL은 'myapp'이라는 콘텍스트 경로와 'hello'라는 서블릿 경로를 가지고 있다.

 

HandlerAdapter는 DispatcherServlet이 컨트롤러를 실행할 때, 어떤 컨트롤러 메서드를 메서드를 실행할지 결정하는 역할을 합니다. Spring MVC에서는 다양한 컨트롤러 메서드를 지원하고 있기 때문에, HandlerAdapter는 이러한 다양한 컨트롤러 메서드를 처리할 수 있도록 설계되어 있습니다.

 

 

반응형