
| 장점 | 단점 |
|---|---|
| 구조가 단순하며 직관적이기 때문에 배우기 쉽다. | 출력을 위한 view(html) 코드와 로직 처리를 위한 java 코드가 섞여 있기 때문에 JSP 코드 자체가 복잡해 진다. |
| 개발 시간이 비교적 짧기 때문에 개발 비용 감소. | JSP코드에 Back-End(Developer)와 Front-End(Designer)가 혼재되기 때문에 분업이 힘들어 진다. |
| project의 규모가 커지게 되면 코드가 복잡해 지므로 유지복수 하기가 어려워 진다. | |
| 확장성(신기술의 도입, framework등…)이 나쁘다. |
| Model2 | MVC Pattern | 설명 |
|---|---|---|
| Service, Dao and Java Beans | Model | Logic(Business & DB Logic)을 처리하는 모든 것. controller로 부터 넘오온 data를 이용하여 이를 수행하고 그에 대한 결과를 다시 controller에 return한다. |
| JSP | View | 모든 화면 처리를 담당. Client의 요청에 대한 결과 뿐 아니라 controller에 요청을 보내는 화면단도 jsp에서 처리한다. Logic처리를 위한 java code는 사라지고 결과 출력을 위한 code만 존재. |
| Servlet | Controller | Client의 요청을 분석하여 Logic처리를 위한 Model단을 호출한다. return 반은 결과 data를 필요에 따라 request, session등에 저장하고, redirect 또는 forward 방식으로 jsp(view) page를 이용하여 출력한다. |

| 장점 | 단점 |
|---|---|
| 출력을 위한 view(html) 코드와 로직 처리를 위한 java 코드가 분리 되었기 때문에 JSP는 Model1에 비해 코드가 복잡하지 않다. | 구조가 복잡하여 초기 진입이 어렵다. |
| 화면단과 Logic단이 분리 되었기에 분업이 용이해 졌다. | 개발 시간의 증가로 개발 비용 증가. |
| 기능에 따라 code가 분리 되었기 때문에 유지 보수가 쉬워졌다. | |
| 확장성이 뛰어나다. |