Web | MVC 패턴과 JSP 모델

MVC 패턴


  • Model
    • 데이터베이스와의 관계를 담당한다. 클라이언트(웹브라우저)의 요청에서 필요한 자료를 데이터베이스로부터 추출하거나 수정하여 Controller로 전달한다.
    • DAO(Data Access Object) : sql문으로 질의응답 하는 클래스
    • DTO(Data Transe Object) : 데이터의 틀을 만들고 저장하는 클래스
  • View
    • 사용자한테 보여지는 UI화면이다. Controller에서 어떤 view 컴포넌트를 보여줄지 결정한다.
    • 주로 .jsp로 작성한다.
  • Controller
    • 클라이언트(웹브라우저)의 요청을 받고 적절한 Model에 지시를 내리며 Model에 전달된 데이터를 적절한 view에 전달 한다.
    • 매니저 같은 역할로 클라이언트로부터 요청받으면 이 요청이 그냥 보여주면되는건지 DB를 거쳐 보여야하는건지 판단하고 알맞게 작업진행을 한다.

모델1


모델1

  • JSP, Servelt, Bean 등으로 구성되는 형태로 JSP에는 프리젠테이션 레이어 & 비즈니스 레이어를 포함하고 업무부분을 JavaBean이나 Servlet에서 구현하기도 한다.
  • Model - View - Controller로 구분하기 모호하긴하지만 궂이 따지자면 JSP에서는 주로 View와 Controller의 역할을 JavaBean / Servlet에서는 주로 Model의 역할을 하지만Controller의 역할을 하기도 한다.
  • 장점
    • 페이지 흐름이 단순해 개발팀원의 수준이 높지 않아도되 중소형 프로젝트에 적합하다.
  • 단점
    • 웹어플리케이션이 복잡해 질수록 유지 보수가 힘들어진다.
    • 완벽히 분리되지 않아 디자이너와 개발자가 원활히 의사소통 되지 않으면 충돌이 발생한다.

모델2


모델2

  • 사용자 요청에 대하여 Controller는 Model에게 데이터 조회, 비즈니스 로직의 처리를 요청하고 Model로 부터 정보를 받아 View에게 전달한다. 최종적으로 View는 정적데이터를 구성하여 사용자에게 전달한다.
  • 장점
    • 효과적으로 분리되어 구성된다면 개발자와 디자이너의 작업이 분리되어 역할과 책임 구분이 명확해진다.
    • 로직과 디자인 개발의 분리로 인해 웹어플리케이션이 구조화되어 유지보수 및 확장이 용이해진다.
  • 단점
    • 구조화를 위해 개발의 복잡도가 증가함에 따라 개발기간도 증가한다.
    • 개발팀원이 MVC구조에 대한 높은 수준의 이해가 요구된다.
Share