목차
- Spring MVC란 무엇인가?
- Spring MVC의 구조
[1] Spring MVC란 무엇인가?
Spring MVC는 Spring Framework에서 웹 애플리케이션을 위해 제공되는 서블릿 API를 기반으로 구축된 웹 프레임워크입니다.
Spring을 이용하다보면 @Controller, @RestController, @RequestMapping, @GetMapping, ModelAndView와 같은 어노테이션과 클래스들은 MVC 기반 구조를 만들기 위해 사용되는 것들입니다.
Spring MVC와 Spring Web MVC의 차이?
Spring MVC
MVC(Model View Controller) 구조를 칭하는 개념적 용어.
Spring Web MVC
spring-webmvc라는 모듈이름 이름으로 Spring MVC는 Spring Web MVC라는 모듈 내부에 구현되어있습니다.
즉, Spring MVC는 웹 프레임워크의 개념적 이름, Spring Web MVC는 Spring MVC가 포함되어있는 모듈 이름입니다.
보통 Spring Boot를 사용할때 스타터 웹 팩을 많이 사용하는데, 스타터 팩에 spring-webmvc모듈이 포함되어있기 때문에 spring mvc를 사용하기 위한 기본 클래스들은 쉽게 사용할 수 있습니다.
[2] Spring MVC 구조
MVC란?
MVC는 디자인 패턴으로 애플리케이션의 개발 영역을 MVC(Model, View, Controller)로 구분하여 역할에 맞게 코드를 작성하는 개발 방식입니다.
Model(모델)
Spring MVC기반의 웹 애플리케이션에 클라이언트의 요청이 들어오면 동적 결과를 반환해주는데, 그 처리 결과를 Model이라고 합니다.
클라이언트의 요청에 대한 결과값(데이터, 이미지 등..)이 이에 해당됩니다.
View(뷰)
웹 브라우저를 통해 클라이언트들이 보는 화면을 View라고 합니다.
View에는 HTML페이지 출력, PDF 등의 문서 출력, JSON 형식의 포멧으로 변환 등의 기술을 가지고 있습니다.
Controller(컨트롤러)
클라이언트의 요청을 전달받는 부분으로 Model과 View의 중간 다리 역할로써, 두 개체의 상화작용을 도와주는 곳을 Controller라고 합니다.
Spring MVC에서는 DispatcherServlet이라는 클래스에서 클라이언트의 요청을 받아 핸들러를 연결해주고 핸들러에서 Model을 받아 View로 전달하는 역할을 해줍니다.
MVC 구조
MVC는 클라이언트의 요청을 받는 Controller, 요청의 결과인 Model, 클라이언트에게 보여지는 View로 구성되어있습니다.
Spring MVC 흐름
클라이언트 -> DispatcherServlet -> Controller
- 요청발생
클라이언트가 /hello로 요청 - DispatcherServlet에서 모든 요청을 가로챔
web.xml 또는 Spring Boot 자동설정에서 `/`에 매핑된 DispatcherServlet이 모든 요청을 받음 - HandlerMapping에서 컨트롤러 탐색
Spring은 URL과 매칭되는 컨트롤러 (@Controller + @RequestMapping)를 찾음 - HandlerAdapter를 통해 해당 컨트롤러 실행
조회한 컨트롤러를 처리할 수 있는 HandlerAdapter에서 컨트롤러 실행(@GetMapping("/helllo)) - ModelAndView 객체 반환
컨트롤러에서 뷰 이름과 Model(결과)을 반환 - ViewResolver가 뷰 이름을 실제 View 객체로 변환
hello -> /WEB-INF/views/hello.jsp - View 객체가 렌더링 실행
JSP파일에 있는 HTML 응답이 만들어지고 HttlServletResponse에 출력됨 - 클라이언트가 웹브라우저에서 화면을 봄
마무리
Spring MVC는 클라이언트의 요청을 처리하고 결과를 보여주는데 까지에 필요한 개발 구조를 MVC패턴으로 구분하여 각 클래스에 역할을 분명하게 해줍니다. 또한 클라이언트 요청이 들어왔을때 모든 요청을 모두 받고 반환하는 것을 Spring MVC에서 처리해하여 개발자는 응답을 처리해줄 Controller와 비즈니스 로직 그리고 화면만 개발할 수 있게 하여 개발자가 개발의 목적과 로직에 집중 할 수 있도록 도와주는 프레임워크입니다.
참고
Spring Web MVC :: Spring Framework
Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, "Spring Web MVC," comes from the name of its source module (spring-webmvc), but it is more commonl
docs.spring.io
[Spring MVC] 스프링 MVC란 무엇인가? - 스프링 MVC 구조 이해
본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹
ittrue.tistory.com
'cs > spring' 카테고리의 다른 글
[Spring] IoC Container & Bean (1) | 2025.06.05 |
---|---|
[Spring] DispatcherServlet (0) | 2025.05.29 |
[spring] Servlet이란 (0) | 2025.05.21 |