MVC1와 MVC2
1. MVC란 ?
- Model, View, Controller의 약자로 사용자와 상호작용 하는 S/W를 디자인 함에 있어서 세 가지 요소로 나누는 것
1-1 Model
모델은 프로그램의 내부 상태, 즉 프로그램의 정보(데이터)를 나타냄
1-2 View
사용자 인터페이스 요소를 뜻함(유저에게 보여지는 것)
1-2 Controller
데이터와 비즈니스 로직 간의 상호 작용(정보를 조종)
- 비즈니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰가 분리되어 있다.
- 어플리케이션의 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중된다.
MVC1과 MVC2의 가장 큰 차이점은 진입
2. MVC1 패턴
- 요청이 JSP단에서 처음 다뤄지고, 다뤄지면서 Bean하고 상호작용을 한다. DB와 상호작용하는 Bean으로 대량의 프로세싱 로직이 다뤄진다하더라도 JSP 페이지는 부분적인 프로세싱 로직을 가지고 있을 수 있다.
- JSP단에서 View와 Controller의 역할을 같이 수행, Bean은 Model의 역할을 가지고 있다.
많은 프로세싱이 요구되는 대규모 작업의 경우 적합하지 않다.
3. MVC2 패턴
- 들어오는 요청을 다루는 서블릿 단이 있고, 이 서블릿 단이 Controller의 역할을 수행한다.
- Controller는 다음에 어떤 작업이 될지, Model이 어떤 작업을 할지 결정하고 모든 작업 후 JSP단에 어떻게 뿌려질 지를 결정하는 것이다.
- 서블릿은 요청 결과가 들어있는 Beans를 인스턴스와 한다.
4. 정리 및 차이점
4-1 MVC1
-
모든 클라이언트 요청과 응답을 JSP가 담당
- 장점
단순한 페이지 작성으로 쉽게 구현 가능하다.(개발이 쉬움)
구조가 간단하다. (중소형 프로젝트에 적합) - 단점
애플리케이션이 복잡해지면 개발과 유지보수가 어려워진다.
개발자와 디자이너간 역할 분담이 어려워진다.
4-2 MVC2
-
클라이언트의 요청을 Servlet이 받아 Controller 역할을 수행하고 JSP가 View 역할을 수행하고 Response를 처리한다.
- 장점
어플리케이션이 복잡하여도 controller와 view의 분리로 개발과 유지보수, 확장이 용이하다.
- 단점
개발이 어렵다. (구조 설계를 위한 충분한 시간이 필요하며 높은 수준의 이해가 필요하다)