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 패턴
동작 방식
- Client는 URI 형식으로 웹 서비스에 요청을 보내면 DispatcherServlet이 받는다.
- DispatcherServlet이 HandlerMapping을 통해 요청을 처리할 Controller를 찾는다.
- HandlerAdapter가 요청을 매핑된 Controller로 위임한다.
- Controller는 요청을 처리한 후에 ViewName을 반환한다.
- DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 Client에게 반환한다.
참고자료
https://mag1c.tistory.com/208
https://mangkyu.tistory.com/18
https://mangkyu.tistory.com/49