본문 바로가기
공부/web

MVC패턴과 모델1, 모델2 구조

by 밍미 2018. 4. 27.
JSP 웹 어플리케이션 구조.md

JSP 웹 어플리케이션 구조

JSP 웹 어플리케이션의 구조는 모델1, 모델2로 구분할 수 있다. 모델 1과 모델2구조를 통해 MVC 패턴을 구현하고 웹 어플리케이션을 개발한다.

 

모델1 구조

모델1 구조는 JSP가 웹 브라우저의 요청을 직접 처리하는 단순한 개발 방식이다. 복잡하지 않은 웹앱을 개발할때 쉽고 빠르게 개발하기 위해 Controller의 역할과 View의 역할을 JSP가 모두 담당하는 것이다. 그래서 html과 CSS, JavaScript, JSP가 한 파일에 뭉쳐있게 되기 때문에 파일이 복잡해져서 디자인을 개편하거나 수정하기가 곤란하다.

 

모델2 구조와 MVC 패턴

모델2 구조에서는 모델1 구조의 단점인 복잡성을 개선하고 유지보수를 쉽게 하기 위해 Controller와 View가 서로 다른 파일로 분리된다. 프로젝트가 Model, View, Controller의 총 3개의 컴포넌트로 나뉘어지고, 웹브라우저의 요청을 Servlet(Controller)이 받아 알맞게 처리한 후 그 결과를 JSP페이지(View)로 forward한다. MVC패턴에서 MVC의 알파벳 각각은 순서대로 Model, View, Controller를 가리킨다.

  • Model

    • 비지니스 코드로 DB에서 데이터를 읽고 쓰는 부분이다.
    • Java를 사용하며 Dao, Dto 등이 있다.
  • View

    • 프레젠테이션 코드로 우리의 눈에 보이는 부분이다.
    • 직접적인 연산이나 처리는 하지 않고 사용자의 요청을 받아 Controller(Servlet)에 전달하거나, Controller에서 결과값을 받아와 (request.setAttribute -> request.getAttribute) 출력하거나 하는 오로지 화면에 보이는 부분만 담당한다.
    • html, CSS, JavaScript, JQuery를 사용한다.
  • Controller

    • 비지니스 코드와 프레젠테이션 코드 사이의 교량 역할을 한다.
    • 사용자의 모든 요청을 받아 적절한 처리를 담당한다.
    • 사용자의 요청을 받아 Model에서 객체를 만들고, DB에서 데이터를 읽어와 View에 전달한다.
    • View단의 요청을 받아 Model단을 호출해서 일을 해야 하는데, 연산이나 복잡한 처리는 Model단에 전달하고, Model단에서 처리한 결과를 받아 View로 전달하는 역할만 해야 한다.
    • 요청에 대한 처리 작업은 반드시 Servlet을 통과시켜서 해야 한다.
    • Controller는 Servlet일 수도 있고, Servlet에서 생성한 별도의 클래스일 수도 있다.
    • Java를 사용한다.

MVC 패턴을 이용하면 보안을 강화할 수 있고, Model, View, Controller의 분리를 통해 프로젝트 파일들을 분석하기가 쉬워져 코드의 재활용도가 높아진다.

 


댓글