[Spring] mvc와 mvc1 pattern 차이
MVC pattern은 크게 두가지로 나눠집니다.
A. model1 방식
웹페이지 내부에 자바 코드 작성
MVC1은 아키텍처가 간단하고 JSP에 거의 모든 로직을 집어넣기 때문에
작은 웹 어플리케이션을 제작할 때는 큰무리가 없지만
대규모 웹 어플리케이션을 제작하게 될 시 유지보수에 큰 어려움이 따름
B. model2 방식
웹페이지와 java code의 분리
MVC패턴에 맞게 Model, Controller, View 로 모듈화 됐고, JSP는 로직 처리가 없이 단순히 Client에게 보여지는 뷰만을 담당
현재는 웹 어플리케이션은 거의 MVC2방식을 따름.
Model: 데이터 처리 클래스( DAO, DTO ) / Back end
DAO( Data Access Object ) 실제적인 비즈니스 로직을 처리
DTO( Data transfer Object) 데이터를 저장, 전달
bean, VO( vector Object ), TO( Table Object )
Controller: 프로그램의 흐름을 제어( servelt class )
View: 화면 처리( jsp page ) / Front end
스프링 MVC 주요 구성 요소 및 처리 흐름
구성 요소 | 설명 |
Dispatcher-servlet | 클라이언트의 요청을 전달받아 요청에 맞는 컨트롤러가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성 ViewResolver설정 - Controller가 전달한 값을 이용해서 응답화면을 생성할 뷰를 결정( 포워드 시, 상대경로보단 절대경로로 지정하는 것이 좋음 ) |
Handler-mapping | 클라이언트의 요청 URL을 어떤 컨틀롤러가 처리할지 결정 |
Controller | 클라이언트의 요청을 처리한 뒤, 결과를 DispatcherServlet에게 리턴 |
ModelAndView | 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음 |
ViewResolver | 컨트롤러의 처리 결과를 생성할 뷰를 결정 |
View | 컨트롤러의 처리 결과 화면을 생성, JSP 또는 Velocity 템플릿 파일 등을 뷰로 사용 |
MVC1, MVC2 패턴의 차이점과 Spring MVC 구조
1. MVC- Model, View, Controller의 줄임말로써, MVC는 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가르킨다.1) Model- 프로그램의 내부 상태, 즉 프로그램의 정보(데이터)
nickjoit.tistory.com