MVC (모델-뷰-컨트롤러)는 소프트웨어 디자인 패턴의 일종이다. 이패턴을 성공적으로 사용하면, 사용자 인터페이스로 부터 비즈니스로직을 분리하여 어플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 어플리케이션을 만들 수 있다
MVC에서 Model은 어플리케이션의 정보(데이터)를 나타내며, View는 텍스트,체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, Controller는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.
MVC는 하나의 DispatcherServlet(=FrontController, MainController)과 처리(Action)객체들로 DispatcherServlet이
사용자의 요청을 접수받아 분류된 요청에 따라 처리객체들을 호출 하고 처리객체들은 그에 맞는 작업을 수행 후에 다시 DispatcherServlet에게 보내면 DispatcherServlet는 처리결과를 수신후 VIew에게 출력을 지시한다.
여기서 처리(Action)객체들을 하나의 Handler(Controller)에 annotation방식으로 method를 만들어 사용자의 요청이 들어오면 DispatcherServlet이 요청정보와 동일한 annotaion(@)을 찾아서 해당 method를 호출하여 결과 값을 수신후 그에 따른 처리 수행(forward or redirect or responseBody)을 하는 방식이 있는데 이것을 이해하면 Spring의 MVC를 80%정도를 이해했다고 보면 된다.