MVC는 Model-View-Controller의 약자이다.
①. Spring에서 기본으로 제공하는 소스 : DispatcherServlet, Handler Mapping, Handler Adapter, view Resolver, Model
②. 개발자들이 만들어야하는 소스 : Controller, view name, Service, Repository
③. Spring과 개발자 둘 다 개발하는 소스 : View
클라이언트가 Dispatcher Servlet에게 요청을 보내면 Dispatcher Servlet이 그 요청을 받아 이 요청을 처리해줄 컨트롤러와 메서드가 무엇인지 Handler Mapping 에게 물어본다. 하지만 핸들러 매핑이 혼자서 알아낼 수는 없기때문에 어떤 요청에 어떤 컨트롤러가 동작할지를 Xml 파일이나 자바파일의 애노테이션으로 설정을 한다. 이러한 정보들을 스프링으로 만들어진 웹 애플리케이션이 실행될 때 Handler Mapping 객체들이 생성이 되면서 관리를 하게된다. Dispatcher Servlet 은 그렇게 Handler Mapping 으로부터 요청에 알맞는 Controller와 Method들이 무엇인지 알아내고 알아냈다면 Handler Adapter 에게 실행을 요청하고 그때 결정된 Controller와 해당 Method가 실행이될 것이고 그 결과를 Model이 받아서 Dispatcher Servlet에게 전달을한다. 이때 Dispatcher Servlet 은 Controller 가 리턴한 view name 을 알아낼텐데 Controller 가 리턴한 view name 을 가지고 적절한 View Resolver를 통해서 View 를 출력(응답)하게 된다.

DispatcherServlet 은 프론트 컨트롤러(Front Controller)의 역할을 한다.
Front Controller 는 이론적으로는 한 개 이상 사용될 수 있다고 하는데 보통은 하나만 선언해서
사용한다.