Spring MVC는 Spring 프레임워크의 웹 애플리케이션 모듈로, MVC 아키텍처를 구현하기 쉽게 도와줍니다. 기본 MVC 패턴처럼 Model, View, Controller 의 역할을 나누어 각각의 기능을 담당하고, 이를 바탕으로 클라이언트의 요청을 처리하고 응답을 생성합니다.
Spring MVC에서는 MVC 패턴을 구현하기 위해 몇 가지 주요 구성 요소가 사용됩니다:
DispatcherServlet은 Spring MVC에서 가장 핵심이 되는 클래스입니다. 모든 HTTP 요청을 받아 Controller로 전달하고, 처리된 결과를 View로 전달해주는 중앙 관리자로 볼 수 있습니다. 요청이 들어오면 DispatcherServlet이 적절한 Controller를 찾아주는 역할을 합니다.
Controller는 클라이언트의 요청을 받아 필요한 작업을 수행하고, Model과 View를 통해 응답을 준비하는 역할을 합니다. Spring MVC에서는 @Controller 또는 @RestController 어노테이션을 사용해 Controller를 정의할 수 있습니다.
@Controller와 @ResponseBody가 결합된 형태라고 생각하면 됩니다.@Controller
public class HomeController {
@GetMapping("/home")
public String home(Model model) {
model.addAttribute("message", "Welcome to Spring MVC!");
return "home"; // View 이름
}
}
위 예제에서 /home 경로로 GET 요청이 들어오면 home 메서드가 실행되고, View로 이동합니다.
Model은 애플리케이션의 데이터를 관리합니다. Controller에서 Model을 통해 데이터를 View에 전달할 수 있습니다. Model에 데이터를 저장하면, Spring MVC가 자동으로 이를 View로 전달해 줍니다.
public String home(Model model) {
model.addAttribute("name", "Spring MVC");
return "home";
}
View는 클라이언트에게 데이터를 시각적으로 보여주는 부분입니다. Spring에서는 JSP, Thymeleaf, Freemarker 등을 사용할 수 있습니다. Controller에서 넘겨준 데이터를 View가 받아 사용자에게 표시합니다.
/home).home.jsp).Spring MVC는 큰 웹 애플리케이션을 구조적으로 개발할 때 아주 유용한 도구입니다. 특히 Spring Boot와 결합하면 설정이 더 간편해져 빠르게 개발할 수 있는 장점이 있습니다.