스프링 MVC(Spring Model-View-Controller) 패턴은 웹 애플리케이션을 개발할 때 사용하는 아키텍처 패턴이다. 이 패턴은 애플리케이션의 구조를 세 가지 주요 부분인 모델(Model), 뷰(View), 컨트롤러(Controller)로 나누어 각 부분이 명확하게 분리되도록 한다. 이렇게 하면 코드의 재사용성과 유지보수성이 크게 향상된다.
주요 구성요소
Model (모델)
- 애플리케이션의 데이터와 비즈니스 로직을 담당한다.
- 데이터베이스와의 상호작용, 데이터 검증, 비즈니스 규칙 등을 처리한다.
- 주로 Java 클래스로 구현된다.
View(뷰)
- 사용자에게 보여지는 UI를 담당한다.
- 모델 데이터를 사용자에게 표시하는 역할을 한다.
- JSP, Thymeleaf, FreeMarker 등의 템플릿 엔진을 사용하여 구현된다.
Cotroller(컨트롤러)
- 사용자의 요청을 받아서 처리하고, 처리 결과를 모델에 반영하고, 적절한 뷰로 데이터를 전달한다.
- 주로 @Controller 어노테이션을 사용한 Java 클래스로 구현된다.
흐름도
1.사용자요청
- 사용자가 웹 브라우저를 통해 특정 URL에 요청을 보낸다
2.DispatcherServlet
- 모든요청은 DispatcherServlet으로 들어온다. 이는 스프링 MVC의 프론트 컨트롤러로서, 요청을 적절한 컨트롤러로 라우팅하는 역할을 한다.
3.컨트롤러
- DispatcherServlet은 요청을 처리할 적절한 컨트롤러를 찾는다.
- 컨트롤러는 요청을 처리하고 필요한 비즈니스 로직을 호출합니다. 이과정에서 모델 데이터를변경하거나 조회할 수 있다.
4.모델
-비즈니스 로직을 처리하고, 데이터베이스와 상호작용하며, 결과 데이터를 생성한다.
5.뷰
- 컨트롤러는 모델 데이터를 사용하여 적절한 뷰를 선택한다.
- viewResolver는 뷰 이름을 실제 뷰 페이지로 변환한다.
- 뷰는 모델 데이터를 사용하여 사용자에게 결과를 표시한다.
6.응답
- 뷰에서 생성된 응답을 dispatcherservlet이 받아서 사용자에게 전달한다. 요청 처리 과정 <그림>
