[Spring] MVC란?

MVC란?

  • 모델 - 뷰 - 컨트롤러(Model - View - Controller, MVC)의 약자이다.
  • 소프트웨어 디자인 패턴이다.
  • 웹 애플리케이션을 기능별로 나누어 처리한다.
    • 화면 처리
    • 요청 처리
    • 비즈니스 로직 처리
  • 모델2 방식이다.

MVC 구성요소

  • Controller
    • Model의 상태를 변경할 수 있다.
    • View에 Model의 결과를 표현할 방식을 선택할 수 있다.
  • Model
    • 데이터와 비즈니스 로직을 수행한다.
    • View가 렌더링하는데 필요한 데이터이다.
    • DAO나 VO클래스로 이루어져 있다.
  • View
    • Model의 결과를 Controller에서 받아서 화면에 표현한다.

MVC 장점

  • 기능이 분리되어 있어 개발 및 유지보수가 편하다.
  • 각 기능의 재사용성이 높아진다.

Spring MVC 동작 과정

  1. DispatcherServlet이 클라이언트의 요청을 받는다.
  2. DispatcherServlet은 적절한 컨트롤러를 선택하는 작업을 HandlerMapping에 전달한다.
    HandlerMapping은 들어오는 요청 URL에 매핑된 Handler(Controller)를 선택하고, 선택된 Handler(Controller)를 DispatcherServlet으로 반환한다.
  3. DispatcherServletController의 비즈니스 로직을 실행하는 작업을 HandlerAdapter로 전달한다.
  4. HandlerAdapterController의 비즈니스 로직 프로세스를 호출한다.
  5. Controller는 비즈니스 로직을 실행하고 그 결과를 Model에 설정하고, View의 논리 이름을 HandlerAdapter에 반환한다.
  6. DispatcherServlet은 View이름에 해당하는 View를 확인하는 작업을 ViewResolver에 전달한다.
    ViewResolver는 View이름에 매핑된 View를 반환한다.
  7. DispatcherServlet은 렌더링 프로세스를 반환된 View로 전달한다.
  8. ViewModel의 데이터를 렌더링하고 응답을 반환한다.

참고