서블릿과 JSP로 개발하는 데에 한계가 있다.
서블릿으로 개발할 때는 뷰 화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여서 지저분하고 너무 복잡하며, JSP도 비즈니스 로직과 뷰 영역이 섞여 복잡하다
이런 복잡함을 해소하기 위해 등장한 것인 MVC 패턴이다.
비즈니스 로직과 뷰 영역을 분리하는 것이다.
MVC 패턴은 웹 어플리케이션을 3가지 영역으로 나눈 것을 의미한다.
Controller
- HTTP 요청을 받고, 비즈니스 로직을 실행하는 부분
- 뷰에 전달할 데이터를 모델에 담는 역할 수행
Model
- 뷰에 출력할 데이터를 담아두는 곳
- 모델 덕분에 뷰는 화면 렌더링에만 집중 가능
View
- 모델에 담겨있는 데이터를 사용해서 화면을 렌더링하는 역할
MVC 패턴을 사용해 비즈니스 로직과 뷰 로직을 분리해 역할을 명확히 구분할 수 있었지만, 중복되는 코드들이 있고, 공통 처리가 어렵다는 문제가 있다.
FrontController
를 앞에 두고 공통 처리를 하도록 했다.DispatcherServlet
이 FrontController 패턴으로 구현되어 있다.