Spring MVC 구조 / MVC1 MVC2

Tech/Java 2023. 2. 5. 21:44
728x90
728x90

MVC (Model - View - Controller)


출처 - 위키백과(MVC)

 

소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.

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

 

 

MVC-1


View와 Controller을 JSP가 담당한다.

JSP에서 MVC가 모두 이루어져 재사용성, 가독성이 떨어져 유지보수성이 낮다.

 

출처 https://chanhuiseok.github.io/posts/spring-3/

 

 

MVC-2


JSP에서 모든 것을 수행하던 MVC1 패턴과 달리 M, V, C의 역할이 분리되어 있다.

오류 발생 혹은 수정 시 M, V, C 중 해당 요소만 수정할 수 있어 유지보수성이 높다.

 

출처 https://chanhuiseok.github.io/posts/spring-3/

 

 

 

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가 이 곳에서 만들어진다.

 

출처 : https://nickjoit.tistory.com/9

 

728x90
300x250
mag1c

mag1c

2년차 주니어 개발자.

방명록