웹프로그래밍 무작정따라하기/JAVA_Spring

[Spring] mvc와 mvc1 pattern 차이

RIMD 2022. 11. 24. 10:38

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