Spring MVC

topics 300-백엔드개발 301 Spring
types 이론
tags #spring-mvc #dispatcher-servlet #model-view-controller
Spring MVC-1748447479487.png
  • Model
    • 데이터를 처리하는 영역
    • DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룸
  • View
    • 어플리케이션이 처리한 데이터나 그 작업 결과를 사용자에게 출력할 화면(UI)으로 만듦
    • 종속성이 없도록 구현
  • Controller
    • 사용자 입력을 받아 데이터를 변경하거나 이를 뷰에 전달하는 역할
    • @Controller
    • 내가 프론트에서 API 받을 때 그 형식이 여기서 정해지는 듯

DispatcherServlet : 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호 작용하며 클라이언트의 요청을 처리하는 패턴을 Front Controller Pattern(프론트 컨트롤러 패턴)

Spring MVC-1748452533042.png
  1. 클라이언트의 요청을 DispatcherServlet이 받는다.
  2. 요청 정보를 통해 이를 위임할 Controller를 HandlerMapping을 통해 검색한다.
  3. HandlerMapping은 Controller 정보를 DispatcherServlet에게 리턴한다.
  4. DispatcherServlet은 HandlerAdapter에게 Controller의 Handler 메서드 호출을 위임한다.
  5. HandlerAdapter가 해당 Controller의 Handler 메서드를 호출한다.
  6. controller는 리턴 받은 Model 데이터를 HandlerAdapter에게 전달한다.
  7. HandlerAdapter는 전달 받은 Model 데이터와 View 정보를 다시 DispatcherServlet에게 전달한다.
  8. DispatcherServlet은 전달 받은 View 정보를 ViewResolver에게 전달해 View 검색을 요청한다.
  9. ViewResolver는 해당하는 View를 찾아 View를 다시 리턴해준다.
  10. DispatcherServlet은 전달 받은 View 객체를 통해 Model 데이터를 넘겨주면서 클라이언트에게 전달할 응답 데이터 생성을 요청한다.
  11. View는 응답 데이터를 생성해 다시 DispatcherServlet에게 전달한다.
  12. DispatcherServlet은 View로부터 전달 받은 응답 데이터를 최종적으로 클라이언트에게 전달한다.
    → 즉, DispatcherServlet은 애플리케이션의 가장 앞에 배치되어 다른 구성 요소와 상호 작용하며 클라이언트의 요청을 처리한다.
    (실제 요청에 대한 처리는 다른 구성 요소들에게 위임하고 있다.)