본문 바로가기

카테고리 없음

모델1과 모델2(MVC) 패턴

모델1은


요청 흐름을 제어하기 위한 컨트롤러가 트별히 존재하지 않습니다.

MVC로 굳이 구분하자면 클라이아언트의 요청을 받은 JSP가 Model 영역을 선택해서 호출하므로 컨트롤러 역할을 수행한다고 볼 수 있습니다.


JSP는 javaBean을 이용하여 DB를 연동하여 Model 영역의 수행 결과를 받아 클라이언트에게 보내줄 UI를 생성하므로 View 역할도 수행합니다.


한마디로 MVC가 분리되어 있지 않음.


이 때문에 프리젠테이션 로직과 비즈니스로직의 분리가 어렵고 그로인해 뷰의 재활용성이 떨어집니다.


차후 수정이 힘들기 때문에 개발기간이 짧은 소규모 프로젝트나, 변경/요구사항이 적을 경우 빠르게 개발할 수 있다는 장점이 있습니다.


모델2는


서블릿이 흐름을 제어하는 Control 역할 수행


모든 Cilent의 요청은 서블릿에 전달되어 서블릿이 클라이언트의 요청에 따라 비즈니스 로직을 호출하고 그 결과에 따라 View에 해당하는 JSP를 호출함.


Model2가 Model1에 비해 개발 초기 부하가 비교적 높고, 아키텍쳐에 대한수준 높은 이해를 요구하지만 재사용성이 높고 확장이 Model1에 비해 용이합니다.


무엇보다 Model2는 그 구조적 특징으로 인해 자연스럽게 MVC 각 영역의 역할이 구분되도록 해줍니다.


Model2는 Controller 역할을 하는 서블릿의 역할이 매우 중요하며, 서블릿이 잘못 개발된 경우 애플리케이션 전체에 미치는 영향이 매우 큽니다.


초기에는 Model2를 적용한 웹 어플리케이션 중에 여러가지 문제가 많았지만 수많은 시행착오 끝에 웹 프레임워크 형태로 보급되고 있습니다.




모델2는 모델1과 다르게 MVC패턴이 명확히 구분되어 있다.