Spring MVC 구조 / MVC1 MVC2Spring2023. 2. 5. 21:44
Table of Contents
728x90
728x90
MVC (Model - View - Controller)
소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.
Model | 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트 상태 변화가 있을 때 컨트롤러와 뷰에 통보한다. (뷰는 최신 결과를 리턴, 컨트롤러는 적용 가능한 명령을 추가,제거,수정) |
View | 사용자가 보는 시각적인 UI 요소 |
Controller | Model과 View를 연결 해 주는 역할 Model과 View에 명령을 보낸다. |
MVC-1
View와 Controller을 JSP가 담당한다.
JSP에서 MVC가 모두 이루어져 재사용성, 가독성이 떨어져 유지보수성이 낮다.
MVC-2
JSP에서 모든 것을 수행하던 MVC1 패턴과 달리 M, V, C의 역할이 분리되어 있다.
오류 발생 혹은 수정 시 M, V, C 중 해당 요소만 수정할 수 있어 유지보수성이 높다.
Spring Framework에서의 MVC
MVC가 유기적으로 동작하도록 다양한 요소들이 있다.
구성요소 | 설명 |
DispatcherServlet (FrontController) |
- 제일 앞 단에서 HTTP Request를 처리 - 요청 시 요청과 매핑되는 컨트롤러를 지정하는 컨트롤러 |
Controller (Handler) |
- HTTP Request를 처리하여 Model을 생성하고, View를 지정 - DispatcherServlet에서 지정된 Controller는 요청을 처리하는 과정에서 필요한 데이터를 뽑아 Model에 저장하며, 요청에 따라 보여줄 View Name 및 View를 반환한다. |
ModelAndView | - Controller에 의해 리턴 된 Model과 View가 저장(Wrapping)된 객체 - Model : Key-Value 형태의 데이터 저장 객체 - View(ViewName) : ViewResolver에 리턴 될 View 지정 |
ViewResolver | ModelAndView 객체를 처리하여 View를 리턴(Model에 저장된 데이터 사용) 사용자가 특정 URL로 들어갔을 때 보여지는 View가 이 곳에서 만들어진다. |
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!