2008년 11월 24일
모델1 VS 모델2 (MVC)
모델 1 모델 1 구조의 전체 흐름
먼저 모델 1 구조에 대해서 살펴보자. 모델 1 구조는 JSP 페이지만으로 구성되어 있는 구조를 말한다.
즉, JSP 페이지에서 동적인 부분(즉, 로직 부분)은 스크립트릿으로 처리하고
그외 나머지 부분은 템플릿으로 처리하는 것이다. 
위 그림에서 클라이언트는 JSP 콘테이너에 HTTP 요청을 전송한다.
그러면 JSP 콘테이너는 HTTP 요청에 따라 알맞은 JSP에 그 요청을 전달하며,
JSP 페이지는 클라이언트의 요청을 알맞게 처리한 후 응답을 클라이언트에 전송한다.
여기서 JSP 페이지는 클라이언트의 요청을 알맞게 처리하는 로직 부분을 구현하고 있다.
때에 따라 자바빈 컴포넌트에 로직 부분을 옮길 수도 있으나,
대부분의 경우 자바빈 컴포넌트는 단순히 데이터를 저장하는 역할만을 맡게 되며
모델 1 구조에서 JSP 페이지는 로직과 프리젠테이션의 역할을 동시에 맡게 된다
단점 : 간단한 JSP 페이지에서조차도 HTML 코드 못지 않게 많은 양의 스크립트 코드가
JSP에 삽입되어 있다.JSP 페이지에서 데이터베이스부터 시작해서 모든 걸 처리한다고 할 경우
스크립트 코드와 HTML 코드는 스파게티처럼 막 뒤 섞이게 된다.
이렇게 로직 부분과 프리젠테이션 부분이 함께 섞여 있는 것은 JSP 개발자와 웹 디자이너가 함께
작업하는 데 많은 불편을 제공한다.
예를 들어, 개발자는 웹 디자이너가 작업한 HTML 문서의 알맞은 위치를 찾아서 스크립트 코드를 삽입해야 한다.
모델2 (MVC)
모델 2 구조는 JSP와 서블릿 그리고 자바빈 컴포넌트를 함께 사용한다.
다음 그림은 모델 2 구조의 전체적인 흐름을 보여주고 있다.
모델 2 구조의 전체 흐름
위 그림을 보면 모델 1 구조와 달리 모델 2 구조는 서블릿이 클라이언트 요청을 처리하게 된다.
서블릿은 클라이언트의 요청을 받으면 그에 알맞은 로직을 실행한 후,
그 결과를 자바빈 컴포넌트와 같은 형태로 JSP 페이지에 전달한다.
객체를 전달받은 JSP 페이지는 그 결과를 사용하여 알맞은 결과 화면을 보여주기만 하면 된다.
즉, 모델 2 구조를 사용함으로써 JSP 페이지에서 로직을 처리하기 위한 스크립트 코드가 사라지는 것이다
*데이터베이스 접속과 관련한 정보와 입력,출력,삭제와 같은 기능은 DAO 라는 별도에 담아두는 형태이다
DAO : 객체지행적 설계패턴
DAO어플리케이션에 대하여 하나 이상의 데이터 저장장치 혹은 관련 소프트웨어에 대한
공통적인 인터페이스를 제공하는 컴포넌트 즉 일관적으로 접근하게 확보해 주는 것이다.
장점 : 1)로직과 프리젠테이션의 구분을 좀더 명확히 할 수 있다
2)유지보수가 편해지고 뛰어난 확장성을 갖는다
단점 : 1)개발이 어려워질 수 있다
2)비용이 증가한다.
# by | 2008/11/24 19:50 | JSP/Servlet | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]