Controller, Model, View
- Controller : 사용자 요청화면 처리, 화면의 로직 처리 담당
- Model : 알고리즘, DB와의 상호작용, 데이터 처리담당
- View : 사용자에게 보여줄 UI(User Interface)담당
Model1
- JSP가Controller + View의 역할을 하고, Java Bean이 Model의 역할을 한다.
- 개발속도가 빠르나 유지보수가 어렵다. 때문에 규모가 작고 유지보수가 거의 필요없는 프로젝트에 적합하다.
동작방식
- 클라이언트가 웹 브라우저를 통해 *.jsp 파일 요청
- 웹 서버가 요청을 받아 Container로 전달
- Container는 요청에 해당하는 *.jsp파일찾고 Servlet으로 변환한다.(.java)
- 변환된 Servlet파일을 컴파일한다.(.class) 이 과정에서 Servlet파일은 메모리에 올라가고, Java Bean을 사용해 클라이언트에게 응답하기 위한 동적 웹 페이지(.html)문서가 구성된다.
- 컴파일된 결과를 응답
Model2
- Servlet이 Controller, JSP가 View, Java Beans가 Model의 역할을 한다.
- Model2는 Model1과 달리 Controller, View, Model이 각각 자신이 수행하는 기능에 따라 분리되어 모듈화 되어있다.
- JSP Model2를 MVC Pattern이라고 부르기도 한다.
- 현재 Spring Framework가 사용하는 기본적인 구조로써 현재까지 많이 사용되고 있는 형태이다.
- 협업과 유지보수에 유리하나 개발시간이 오래걸린다는 단점이 존재한다. 때문에 규모가 크고 개발 후에도 주기적으로 유지보수가 필요한 프로젝트에 적합하다.
- 하지만 MVC패턴 기반 애플리케이션은 한 Model이 여러 Controller에서 불려지는 등의 문제점이 발생하여 프로젝트의 형태가 복잡해질 수 있다.
동작방식
- 클라이언트가 웹 브라우저를 통해 *jsp 요청
- 웹 서버가 요청을 받아 Container로 전달
- Container는 요청에 해당하는 Servlet(Contoller)을 찾아 실행시킨다.
- 필요하다면 Java Bean을 이용해 DB에서 데이터를 가져온 뒤 로직을 처리하고, JSP에게 Parameter로 넘긴다.
- JSP는 넘겨받은 Parameter가 있다면, 이를 통해 동적인 웹페이지를 생성하고 반환한다.
- 생성한 웹 페이지를 웹 서버로 전송하면, 웹 서버는 클라이언트에게 전송한다.
정리
- 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 |