[MVC 모델(패턴)이란?]
-- MVC 모델 1
※ DTO(Data Transfer Object) : 데이터 전송을 위한 개체
요청 흐름을 제어하기 위한 컨트롤러가 특별히 존재하지 않는다. MVC로 굳이 구분하자면 클라이언트의 요청을 받은 JSP가 Model 영역을 선택해서 호출하므로 컨트롤러 역할을 수행한다고 볼 수 있다. JSP는 JavaBean을 이용하여 데이터베이스를 연동하여 Model 영역의 수행 결과를 받아 클라이언트에게 보내줄 UI를 생성하므로 View 역할도 수행한다. 프리젠테이션 로직과 비즈니스로직의 분리가 어렵고 그로 인해 뷰의 재활용성이 떨어진다. 차후 수정이 힘들기 때문에 개발기간이 짧은 소규모 프로젝트나, 변경사항이나 요구사항이 적을경우 빠르게 개발할 수 있다는 장점이 있다.
예) 영화 홍보용 사이트
-- MVC 모델 2 [ = MVC 패턴 ]
MVC 패턴이란 애플리케이션을 크게 Model, View, Controller의 세 영역으로 구분하여 영역 간의 결합도를
소화한 패턴이다. 주로 웹 애플리케이션에서 사용되며, 일반 애플리케이션에서도 사용된다.
MVC 패턴의 가장 중요한 장점 중 하나는 비즈니스 로직과 프리젠테이션 로직이 분리되었다는 것이다.
즉, 디자이너와 개발자들의 영역이 분리됨으로써 서로 각자의 영역에 더 집중할 수 있다는 장점이 있다.
-- Model 영역
애플리케이션에 비즈니스 로직과 사용되는 데이터를 다루는 영역이다.
일반적으로 비즈니스 데이터는 DBMS에 의해 관리되고, 그 데이터를 다루는 연산은 SQL문을 통해 구현된다.
-- View 영역
최종 사용자에게 보여줄 프리젠테이션 로직을 담당하는 영역이다.
일반적으로 자바 웹 애플리케이션에서는 JSP를 통해서 구현된다.
-- Controller 영역
컨트롤러는 흐름을 관리하는 역할을 하며, 모델과 뷰 영역간의 조정 역할을 한다.
사용자의 요청을 받아 이를 수행하기 위한 비즈니스 로직을 선택하고 호출하며,
수행한 비즈니스 로직의 결과를 뷰를 통해 보여준다.
Model2[ = MVC 패턴 ]에서는 서블릿이 흐름을 제어하는 컨트롤러 역할을 수행한다. 모든 클라이언트의 요청은 서블릿에 전달되어 서블릿이 클라이언트의 요청에 따라 비즈니스 로직을 호출하고 그 결과에 따라 View에 해당하는 JSP를 호출하는 방식이다.
Model2가 Model1에 비해 개발 초기의 부하가 비교적 높고, 아키텍처에 대한 수준 높은 이해를 요구하지만재사용성이 높고 확장이 Model1에 비해 용이하다. 무엇보다 Model2는 그 구조적 특징으로 인해 자연스럽게 MVC 각 영역의 역할이 구분되도록 해준다.
Model2는 Controller 역할을 하는 서블릿의 역할이 매우 중요하며, 서블릿이 잘못 개발된 경우 애플리케이션 전체에 미치는 영향이 매우 크다. 현재는 많은 시행 착오 끝에 웹 프레임워크 형태로 보급되어 그러한 오류를 방지하고 있다.
-- 예제 댓글형 게시판 프로젝트 구조
'Program > Spring Framework' 카테고리의 다른 글
Spring 스프링 1일차 - Spring 이란? (0) | 2015.07.27 |
---|---|
Spring 스프링 1일차 - AOP (Aspect Oriented Programming)란? (0) | 2015.07.27 |
Spring 스프링 1일차 - IoC(Inversion of Control - 제어의 역전)란? (0) | 2015.07.27 |
Spring 스프링 1일차 - 프레임워크와 라이브러리의 차이점? (0) | 2015.07.27 |
Spring 스프링 1일차 - 프레임워크란? (0) | 2015.07.27 |