본문 바로가기

JSP

[JSP]Model1, Model2

Controller, Model, View

  • Controller : 사용자 요청화면 처리, 화면의 로직 처리 담당
  • Model : 알고리즘, DB와의 상호작용, 데이터 처리담당
  • View : 사용자에게 보여줄 UI(User Interface)담당

Model1

  • JSP가Controller + View의 역할을 하고, Java Bean이 Model의 역할을 한다.
  • 개발속도가 빠르나 유지보수가 어렵다. 때문에 규모가 작고 유지보수가 거의 필요없는 프로젝트에 적합하다.

동작방식

  1. 클라이언트가 웹 브라우저를 통해 *.jsp 파일 요청
  2. 웹 서버가 요청을 받아 Container로 전달
  3. Container는 요청에 해당하는 *.jsp파일찾고 Servlet으로 변환한다.(.java)
  4. 변환된 Servlet파일을 컴파일한다.(.class) 이 과정에서 Servlet파일은 메모리에 올라가고, Java Bean을 사용해 클라이언트에게 응답하기 위한 동적 웹 페이지(.html)문서가 구성된다. 
  5. 컴파일된 결과를 응답

Model2

  • Servlet이 Controller, JSP가 View, Java Beans가 Model의 역할을 한다.
  • Model2는 Model1과 달리 Controller, View, Model이 각각 자신이 수행하는 기능에 따라 분리되어 모듈화 되어있다.
  • JSP Model2를 MVC Pattern이라고 부르기도 한다.
  • 현재 Spring Framework가 사용하는 기본적인 구조로써 현재까지 많이 사용되고 있는 형태이다.
  • 협업과 유지보수에 유리하나 개발시간이 오래걸린다는 단점이 존재한다. 때문에 규모가 크고 개발 후에도 주기적으로 유지보수가 필요한 프로젝트에 적합하다.
  • 하지만 MVC패턴 기반 애플리케이션은 한 Model이 여러 Controller에서 불려지는 등의 문제점이 발생하여 프로젝트의 형태가 복잡해질 수 있다.

동작방식

  1. 클라이언트가 웹 브라우저를 통해 *jsp 요청
  2. 웹 서버가 요청을 받아 Container로 전달
  3. Container는 요청에 해당하는 Servlet(Contoller)을 찾아 실행시킨다.
  4. 필요하다면 Java Bean을 이용해 DB에서 데이터를 가져온 뒤 로직을 처리하고, JSP에게 Parameter로 넘긴다.
  5. JSP는 넘겨받은 Parameter가 있다면, 이를 통해 동적인 웹페이지를 생성하고 반환한다.
  6. 생성한 웹 페이지를 웹 서버로 전송하면, 웹 서버는 클라이언트에게 전송한다.

정리

  • Model1은 JSP가 View + Controller의 역할을 수행하고, Java Bean이 Model의 역할을 수행한다.
  • Model1은 개발시간이 짧으나, 유지보수 측면에서 불리하다.
  • Model2는 JSP가 View, Servlet이 Controller, Java Bean이 Model의 역할을 수행한다.
  • Model2은 개발시간이 오래걸리나, 각 모듈을 분리하여 개발하였기 때문에 디자인 수정시 JSP페이지를, 로직 수정시 Servlet파일을 수정하면된다. 즉 유지보수 측면에서 유리하다

'JSP' 카테고리의 다른 글

[JSP]JSP의 지시자와 액션태그  (0) 2023.03.15
[JSP]JSP의 스크립트 요소  (0) 2023.03.14
[JSP]JSP의 개념  (0) 2023.03.14
[JSP]동적 페이지를 위한 기술 CGI  (0) 2023.03.10
[JSP]전체적인 흐름  (0) 2023.03.10