[Spring] MVC 1, MVC 2, Spring MVC 동작 방식

wujin·2023년 9월 7일
0

MVC 패턴

  • MVC(Model-View-Controller) 패턴은 소프트웨어 디자인 패턴 중 하나로, 소프트웨어 응용 프로그램을 구성하고 개발하는 데 사용되는 패턴 중 하나이다.
  • 응용 프로그램의 구조화와 유지 보수를 용이하게 하며 코드의 재사용성과 확장성을 향상시키는 데 도움을 준다고 한다.
  • MVC 패턴은 크게 MVC 1 패턴과, 스프링이 채택한 MVC 2 패턴으로 나눌 수 있다.

MVC 패턴 구성요소

  • Model
    • 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트
    • 상태 변화가 있을 때 컨트롤러와 뷰에 통보한다.
      - 뷰는 최신 결과를 리턴, 컨트롤러는 적용 가능한 명령을 추가, 제거, 수정
  • View
    • 사용자가 보는 시각적인 UI 요소로써 모델로부터 정보를 얻고 표시한다.
  • Controller
    • Model과 View를 연결 해 주는 역할
    • Model과 View에 명령을 보낸다.

MVC 1 패턴

  • MVC1 패턴은 View와 Controller를 JSP가 담당하는 형태이다.
  • 간단하고 빠르게 개발할 수 있으며, 작은 규모의 웹 애플리케이션에 적합하다.
  • JSP에서 MVC가 모두 이루어져 재사용성, 가독성이 떨어져 유지보수성이 낮다.

MVC 2 패턴

  • MVC2 패턴은 MVC1 패턴을 보완한 개발 패턴으로 M, V, C 역할이 분리되어있다.
  • 오류 발생 혹은 수정시 M, V, C중 해당 요소만 수정할 수 있어 유지보수성이 높다.
  • 코드의 모듈화와 재사용성이 향상되어 유지보수가 용이하고 대규모 프로젝트에 적합하다.

Spring Framework의 MVC 패턴

  • 스프링은 MVC 2 패턴을 사용한다.

동작 방식

  1. Client는 URI 형식으로 웹 서비스에 요청을 보내면 DispatcherServlet이 받는다.
  2. DispatcherServlet이 HandlerMapping을 통해 요청을 처리할 Controller를 찾는다.
  3. HandlerAdapter가 요청을 매핑된 Controller로 위임한다.
  4. Controller는 요청을 처리한 후에 ViewName을 반환한다.
  5. DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 Client에게 반환한다.

참고자료
https://mag1c.tistory.com/208
https://mangkyu.tistory.com/18
https://mangkyu.tistory.com/49

0개의 댓글