본문 바로가기

PROGRAMMING/JSP

MVC1 vs MVC2

MVC1과 MVC2의 차이를 말로 설명할 수 있게끔 정리해보고자 포스팅을 할까한다.

우선 MVC1과 MVC2의 차이를 논해보기 전에 MVC가 무엇인지 살피고 넘어가자.


1. MVC란?

: MVC는 Model, View, Controller의 줄임말이다. MVC는 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가르킨다.

1) Model

: 모델은 프로그램의 내부 상태, 즉 프로그램의 정보(데이터)를 말하는 것이다.

  JSP를 통해 예시를 들자면 Bean 안에 있는 정보를 model에 해당한다고 할 수 있는 것이다.

2) Controller

: 데이터와 비즈니스 로직 간의 상호 작용을 뜻한다. 말 그대로 정보를 조종(control)하는 것이다.

3) View

: 사용자 인터페이스 요소를 뜻하는데, 유저에게 보여지는 것을 말하는 것이다.


2. MVC1

(출처 : http://www.coderanch.com/)                


MVC1 모델은 요청이 JSP단에서 처음 다뤄지고, 다뤄지면서 Bean하고 상호작용을 한다. DB와 상호작용하는 Bean으로 대량의 프로세싱 로직이 다뤄진다하더라도 JSP 페이지는 부분적인 프로세싱 로직을 가지고 있을 수 있다. MVC1에서의 JSP단은 View와 Controller의 역할을 가지고 있고, Bean은 Model의 역할을 가지고 있는 것이다.

복잡한 프로세싱을 가지지 않는 소규모 작업의 경우 MVC1이 괜찮겠지만 네트워크 커넥션, DB 상호작용, 자격증명 등 많은 프로세싱이 요구되는 대규모 작업의 경우 MVC1이 적합하지 않다.


3. MVC2

(출처 : http://www.coderanch.com/)                


MVC2 모델은 들어오는 요청을 다루는 서블릿 단이 있고, 이 서블릿 단이 Controller의 역할을 한다. MVC2의 Controller는 다음에 어떤 작업이 될지, Model이 어떤 작업을 할지 결정하고 모든 작업 후 JSP단에 어떻게 뿌려질 지를 결정하는 것이다. 그리고 View와 Model은 MVC1과 다를 바 없다.


4. 정리

정리를 하자면, MVC1과 MVC2의 큰 차이는 Controller가 View에 속해있는지 아닌지이다. 

소규모 작업의 경우 처리해야 할 로직이라던지 요청이 적기 때문에 View 단이 Controller 역할까지 해도 로직도 복잡하지 않고 괜찮지만 대규모일수록 나눠져 있는 MVC2를 사용하는 것이 좋다.


'PROGRAMMING > JSP' 카테고리의 다른 글

커넥션 풀(Connection Pool)  (126) 2013.08.05
Cygwin에서의 JSP 개발환경 설정.  (3) 2013.05.03