사용자가 보는 view, model, 둘을 관리하는 controller, 이렇게 3가지의 구성으로 되는 하나의 어플리케이션을 만들면 각각 맡은바에만 집중 할 수 있게 된다.
->처리가 효율적이며 유지 보수가 쉬움.
어플리케이션의 확장성 유연성이 증가 중복코딩이라는 문제점이 사라진다.
유연성: 클라이언트의 새로운 요구사항에 대해 최소한의 비용으로 보다 유연하게 대처 가능.
패턴은 결국 어떻게 나눌 것인가의 해답 중 하나이다.
1. 기본적인 구성요소
model: DB와 상호작용하며 비즈니스 로직을 처리하는 모듈. 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트
view: 사용자에게 화면을 보여주기 위해 모델의 데이터를 전달받아 사용자가 읽을 수 있도록 결과 화면을 반환하는 모듈.
controller : client(사용자)의 요청이 들어왔을 때 그 입력을 처리하고 어떤 로직을 실행시킬 것인지 제어하는 모듈.
2. model 1 vs model 2
model 1
JSP파일 안에 view와 controller가 모두 들어가있다
-> 한 파일에 java,html,각종 태그 가 모두 공존.
장점: html안에 java와 각종 태그를 전부 넣다보니 개발이 빠름.
단점: 유지보수 어려움.
가독성 좋지않음.
-> 유지보수시,개발자의 스트레스를 증가.
model 2