1. MVC(Model-View-Controller) 패턴
- MVC 패턴은 소프트웨어 디자인 패턴 중 하나로, 사용자 인터페이스와 비즈니스 로직을 분리하여 개발을 용이하게 만드는 구조입니다.
→ 구성 요소
- Model : 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 담당합니다.
- View : 사용자에게 데이터를 표시하는 부분으로, UI 요소를 담당합니다.
- Controller : 사용자의 입력을 받아 Model과 View를 연결해주는 중간 역할을 합니다.
→ MVC의 흐름
- 사용자의 요청이 Controller로 전달됩니다.
- Controller는 적절한 Model을 호출하여 데이터를 처리합니다.
- Model의 데이터를 View에 전달하여 사용자에게 결과를 보여줍니다.
2. Spring MVC
- Spring MVC는 Spring 프레임워크 내의 웹 애플리케이션을 위한 MVC 구현체입니다. 이 패턴을 기반으로 하여 웹 애플리케이션을 보다 체계적으로 구성할 수 있도록 도와줍니다.
→ 주요 특징
- DispatcherServlet : Spring MVC의 진입점으로, 모든 요청을 받아서 적절한 Controller로 분배합니다.
- Controller : 사용자의 요청을 처리하고 적절한 Model과 View를 연결합니다.
- ModelAndView : Controller가 처리한 데이터를 담아 View에 전달할 때 사용하는 객체입니다.
- View Resolver : View 이름을 기반으로 실제 View 파일의 위치를 찾는 역할을 합니다.
→ Spring MVC의 흐름
- 사용자의 요청이 DispatcherServlet으로 전달됩니다.
- DispatcherServlet은 요청을 처리할 적절한 Controller를 호출합니다.
- Controller는 비즈니스 로직을 처리하기 위해 Model을 호출합니다.
- Model에서 처리된 데이터는 ModelAndView를 통해 View로 전달됩니다.
- View Resolver가 실제 View 파일을 찾아 사용자에게 결과를 보여줍니다.
3. MVC와 Spring MVC의 차이점
- 일반적인 MVC 패턴은 애플리케이션의 구조를 정의하는 디자인 패턴입니다.
- Spring MVC는 Spring 프레임워크를 기반으로 하여 MVC 패턴을 웹 애플리케이션에 적용한 구현체입니다.
- Spring MVC는 DispatcherServlet, View Resolver 등의 Spring 구성 요소를 제공하여 MVC 구조를 간편하게 적용할 수 있게 해줍니다.