mvc 패턴에 대해서 설명해주세요.
mvc 패턴이란 Model-View-Controller의 약자로, 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 진행 순서는 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하는 방법입니다.
사용해야 하는 이유
비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행할 수 있고 애플리케이션의 확장성, 유연성에 유리하기 때문입니다.
- Model
데이터를 가진 객체를 말하며 데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행합니다.
- View
클라이언트 측 기술(HTML/CSS/Javascript)을 모아둔 컨테이너로 Model로부터 정보를 얻어와 사용자가 볼 화면을 디자인하고 구현합니다.
- Controller
사용자의 요청 사항을 파악한 후에 그 요청에 맞는 데이터를 Model을 의뢰하고, 데이터를 View에 반영해서 사용자에게 알려줍니다.

출처
Spring MVC
Servlet API를 기반으로 구축된 최초의 웹 프레임워크이며 처음부터 Spring 프레임워크에 포함되었습니다.

출처
- DispatcherServlet : 제일 먼저 Http Request를 처리하는 controller
- ViewResolver : model에 저장된 데이터를 사용해 View를 그려줌, 여기서 그려지는 View는 user에게 반환된다.