MVC 구성요소
•
M (Model)
◦
Model은 내부 비즈니스 로직에 해당
◦
백그라운드 로직으로써 처리되는 알고리즘, 데이터, DB와의 상호작용 등등을 담당.
•
V (View)
◦
View는 사용자 인터페이스(UI)를 의미
◦
요청에 대한 처리결과를 View를 통해 클라이언트에게 화면을 통해 보여준다.
•
C (Controller)
◦
Controller는 Model과 View사이에서 중계자 역할을 수행
◦
클라이언트의 요청을 처리하고 흐름제어를 담당.
◦
JSP 파일 내에서 뷰와 컨트롤러가 모두 실행되어지는 구조
◦
JSP 페이지에 로직을 처리하기 위한 코드와 출력을 담당하는 코드가 함께 존재
◦
JSP 페이지 안에서 모든 정보를 표현(view)하고 저장(model)하고 처리(control)되므로 재사용이 힘들고, 읽기도 힘들어 가독성이 떨어진다.
◦
모든 클라이언트 요청과 응답을 JSP가 담당하는 구조
장점
◦
단순한 구조로 인해 개발 기간이 짧다.
◦
난이도가 낮다.
단점
◦
복잡도가 높아질수록 기능이 섞인 코드때문에 유지보수가 어렵다.
◦
디자이너와 개발자 간 의사소통이 필요
◦
MVC1 구조와 달리 웹 브라우저의 요청을 하나의 서블릿이 받게 됨
◦
서블릿은 웹 브라우저의 요청을 알맞게 처리한 후 그 결과를 JSP 페이지로 포워딩
◦
클라이언트의 요청처리와 응답처리, 비지니스 로직 처리하는 부분을 모듈화시킨 구조
장점
◦
컨트롤러와 뷰의 분리로 인해 유지보수와 확장이 편리하다.
◦
디자이너와 개발자의 작업이 분리되어 분업에 용이하다.
단점
◦
개발 초기 단계에 구조 설계에 비교적 많은 작업량과 시간이 필요하다.
◦
자바와 구조에 대한 깊은 이해도가 필요하기 때문에 높은 수준을 요한다.