Java 웹 애플리케이션을 쉽게 개발하기 위해 만들어진 구조
쉽게 말해, Spring MVC는 이렇게 도와줍니다:
- Controller가 “이 일을 해줘”라고 지시하고,
- Model이 데이터를 준비하며,
- View가 “이렇게 보여줄게”라고 하여 사용자가 볼 수 있도록 구성하는 역할입니다.
Spring MVC는 웹 애플리케이션에서 Model-View-Controller (MVC) 디자인 패턴을 구현한 Spring 프레임워크의 일부입니다. 이 패턴을 사용하면 애플리케이션의 각 역할을 분리하여 유지보수성과 확장성을 높일 수 있습니다. Spring MVC의 구성 요소와 데이터 흐름을 좀 더 자세히 살펴보겠습니다:
1. Spring MVC 구성 요소
1) DispatcherServlet
- Spring MVC의 중앙 컨트롤러로서, 모든 클라이언트 요청을 처음으로 받아들이는 역할을 합니다.
- 클라이언트 요청을 적절한 Controller로 라우팅하고, 이후 View와 결합하여 응답을 반환하는 일련의 작업을 수행합니다.
2) Controller
- 실제 비즈니스 로직을 수행하는 부분입니다. 각 요청에 맞는 적절한 로직을 수행하고 Model에 필요한 데이터를 생성하여 View에 전달합니다.
- Spring에서는
@Controller
나 @RestController
어노테이션을 사용해 클래스를 Controller로 정의할 수 있습니다.
3) Model
- 애플리케이션의 데이터와 상태를 표현하는 역할을 합니다. Model은 주로 서비스 계층에서 비즈니스 로직을 통해 얻은 데이터를 가지고 있습니다.
- Controller는 이 데이터를 가공하여 View에 전달하며, Spring에서는
Model
객체를 통해 데이터를 전달할 수 있습니다.
4) View
- 사용자에게 보여지는 화면을 담당하는 부분입니다. Spring MVC에서는 JSP, Thymeleaf, FreeMarker와 같은 템플릿 엔진을 사용하여 View를 구현합니다.
- Controller에서 넘겨받은 Model 데이터를 표시하여 사용자에게 결과를 보여줍니다.
2. Spring MVC의 흐름