MVC(Model-View-Controller)패턴은 애플리케이션을 세가지 역할로 구분한 개발 방법론이다. 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다.
이 패턴을 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있게 된다.

✔ 위 개념을 WEB에 적용 시 (동작순서)
1. 사용자가 웹사이트에 접속 (Users)
2. Controller는 사용자가 요청한 웹페이지를 서비스하기 위해 모델을 호출 (Manipulates)
3. Model은 DB나 파일과 같은 데이터 소스를 제어한 후 그 결과를 리턴
4. Controller는 Model이 리턴한 결과를 View에 반영 (Updates)
5. 데이터가 반영된 View는 사용자에게 보여짐 (Sees)
📲 Model
💻 View
🔧 Controller
MVC패턴에는 모델1 방식과 모델2 방식이 있다.
📌 MODEL1
: JSP에서 출력과 로직을 전부 처리

모델1 방식은 Controller영역에 View 영역을 같이 구현하는 방식이며, 사용자의 요청을 JSP가 전부 처리한다. 요청 받은 JSP는 JavaBean Service Class를 사용하여 웹브라우저 사용자가 요청한 작업을 처리하고 그 결과를 출력한다.
📌 MODEL2
: JSP에서 출력만 처리

모델2 방식은 웹브라우저 사용자의 요청을 서블릿이 받고 서블릿은 해당 요청으로 View로 보여줄 것인지 Model로 보낼 것인지를 판단하여 전송한다. 또한 HTML 소스와 Java 소스를 분리해놓았기 때문에 모델1 방식에 비해 확장과 유지보수가 쉽다.
* Model1 방식은 백엔드와 프론트엔드 역할분담이 모호해져 협업이 어렵기 때문에 거의 쓰지 않음.