jsp의 경우
뷰를 담당하는 html코드 + 회원저장,관리등의 자바코드
가 동시에 들어가 있어 하나의 파일이 여러가지 역할을 너무 많이 하게된다.
코드가 길어질 경우 유지보수가 너무 힘들어진다!!
즉, 하나의 서블릿, jsp만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면 유지보수가 힘들다.
jsp같은 뷰 템플릿 -> 화면을 렌더링하는데 최적화
서블릿 -> 자바코드를 실행하는데 최적화
따라서 M(Model) V(View) C(Controller) 3가지 영역으로 분리하여 웹 어플리케이션을 실행하는 것이 일반적이다.
참고
컨트롤러가 비즈니스 로직까지 담당하게 되면 너무 많은 역할을 할 수 있기 때문에 [그림2] 보통 서비스 계층을 따로 만들어 컨트롤러는 비즈니스 로직을 호출만 하게한다.
[그림2]