IT Developer/Spring

Spring 기초 <6. Spring MVC 기본 개념과 동작 원리 (DispatcherServlet 구조)>

TEMA_ 2025. 3. 23. 13:45
반응형

스프링 Spring

6. Spring MVC 기본 개념과 동작 원리 (DispatcherServlet 구조)

 

안녕하세요! 태마입니다.

Spring 기초 강좌입니다.

 

강좌의 경우 

1. 주제 간단 정리

2. 상세 주제 정리

으로 이루어져 있습니다.

 

스프링 Spring

포스팅 시작하겠습니다 :)

 


 

1. 주제 간단 정리

 

1. Spring MVC란?

Spring MVC (Model-View-Controller)는 웹 애플리케이션을 개발하기 위한 Spring 프레임워크의 핵심 모듈
클라이언트의 요청을 컨트롤러에서 처리하고, 적절한 뷰(View)로 데이터를 전달하는 구조
Model, View, Controller의 역할을 분리하여 유지보수성과 확장성을 높이는 것이 특징

📌 Spring MVC를 사용하는 이유
효율적인 웹 애플리케이션 개발 → 요청과 응답을 체계적으로 처리
유지보수성 향상 → 관심사 분리를 통해 코드 관리가 쉬워짐
유연한 설정 → XML, Java Config, 어노테이션 방식 지원
다양한 뷰 기술과 통합 가능 → JSP, Thymeleaf, React 등과 함께 사용 가능

📌 Spring MVC는 "웹 애플리케이션의 요청을 효과적으로 처리하기 위해 설계된 강력한 프레임워크"


2. Spring MVC의 핵심 개념 (Model, View, Controller)

Spring MVC는 MVC 아키텍처 패턴을 기반으로 웹 애플리케이션을 구성

📌 Spring MVC 아키텍처 구성 요소

구성 요소설명역할

Model 애플리케이션의 데이터 및 비즈니스 로직을 담당 데이터 처리 및 전달
View 사용자에게 데이터를 출력하는 부분 HTML, JSP, Thymeleaf 등
Controller 클라이언트의 요청을 받아 적절한 서비스 호출 비즈니스 로직을 실행하고 View에 데이터 전달
DispatcherServlet Spring MVC의 핵심 컨트롤러로 모든 요청을 조정 요청을 컨트롤러로 전달하고 응답을 반환

📌 Spring MVC는 Model, View, Controller를 분리하여 유지보수성을 높이고, 코드의 재사용성을 증가시킴.


3. Spring MVC의 요청 처리 흐름

Spring MVC에서 클라이언트의 요청이 처리되는 과정을 살펴보자.

📌 Spring MVC 요청 처리 흐름 (DispatcherServlet 중심)

1️⃣ 클라이언트 요청 → 사용자가 웹 페이지에서 요청을 보냄 (GET /hello)
2️⃣ DispatcherServlet이 요청을 수락 → 모든 요청은 DispatcherServlet을 통해 처리됨
3️⃣ Handler Mapping이 컨트롤러 검색 → 어떤 컨트롤러가 요청을 처리할지 결정
4️⃣ Controller가 요청 처리 → 해당 컨트롤러에서 적절한 서비스 호출
5️⃣ View Resolver가 적절한 뷰(View) 선택 → HTML, JSP 등의 뷰를 결정
6️⃣ View 렌더링 및 응답 반환 → 클라이언트에게 최종 결과를 전송

📌 DispatcherServlet이 요청을 중앙에서 조정하면서 Spring MVC의 핵심 역할을 수행함.


✅ 여기까지 Spring MVC의 개념과 구조를 배웠습니다!
👉 "그렇다면, DispatcherServlet의 내부 동작 방식은 어떻게 될까?"
✅ 2부에서 DispatcherServlet의 동작 원리와 주요 컴포넌트에 대해 배워봅시다!

반응형

 


 

2. 상세 주제 정리

 

1. DispatcherServlet이란?

DispatcherServlet은 Spring MVC에서 모든 HTTP 요청을 처리하는 중앙 컨트롤러 역할을 수행
요청을 적절한 컨트롤러로 전달하고, 응답을 생성하여 클라이언트에게 반환

📌 DispatcherServlet의 주요 역할
요청을 분석하여 적절한 컨트롤러로 전달
Controller에서 받은 데이터를 View Resolver에 전달하여 응답 생성
Handler Mapping, View Resolver 등과 협력하여 MVC 흐름을 제어

📌 DispatcherServlet은 "Spring MVC의 모든 요청을 중앙에서 관리하는 핵심 컴포넌트"


2. DispatcherServlet의 내부 동작 과정

DispatcherServlet은 여러 핵심 컴포넌트와 협력하여 동작함

📌 DispatcherServlet의 내부 동작 과정

1️⃣ 클라이언트 요청을 수락 → DispatcherServlet이 요청을 받음
2️⃣ Handler Mapping을 통해 컨트롤러 찾기
3️⃣ 해당 컨트롤러로 요청 전달
4️⃣ 컨트롤러가 요청을 처리하고 Model을 생성
5️⃣ View Resolver를 통해 뷰(View) 결정
6️⃣ 뷰(View)가 최종 응답을 생성하여 클라이언트에게 반환

📌 DispatcherServlet의 동작 원리를 이해하면 "Spring MVC의 요청 흐름을 효과적으로 제어할 수 있음"


3. DispatcherServlet을 활용한 Spring MVC 코드 예제

Spring MVC에서 DispatcherServlet이 요청을 처리하는 방식의 예제를 살펴보자.

📌 Spring MVC 컨트롤러 예제

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Spring MVC DispatcherServlet 예제");
        return "hello"; // View 이름 (hello.html 또는 hello.jsp)
    }
}

📌 Spring MVC View (hello.html - Thymeleaf 예제)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring MVC 예제</title>
</head>
<body>
    <h1 th:text="${message}">Hello, Spring MVC!</h1>
</body>
</html>

DispatcherServlet이 "/hello" 요청을 받아 HelloController로 전달하고, hello.html을 렌더링하여 응답을 반환함

📌 DispatcherServlet을 활용하면 "효율적인 웹 애플리케이션 개발이 가능해짐"


4. Spring MVC의 확장성과 활용

Spring MVC는 다양한 방식으로 확장 가능

📌 Spring MVC 확장 및 활용 사례

활용 방법설명

RestController 사용 JSON 응답을 위한 RESTful API 개발 가능
View Resolver 확장 JSP, Thymeleaf, Mustache 등 다양한 템플릿 엔진 지원
Interceptor 활용 요청과 응답을 가로채어 로깅, 인증 등의 기능 추가
ExceptionHandler 활용 글로벌 예외 처리 적용 가능
Spring Security 연동 인증 및 권한 관리를 쉽게 구현 가능

📌 Spring MVC는 "다양한 기능과 확장성을 갖춘 강력한 웹 애플리케이션 프레임워크"


✅ 여기까지 DispatcherServlet의 동작 원리와 Spring MVC의 핵심 개념을 배웠습니다!
👉 "그렇다면, Spring Boot에서 REST API는 어떻게 개발할까?"
✅ 다음 회차에서 **Spring Boot에서 REST API 개발 (GET, POST, PUT, DELETE)**을 배워봅시다!

 

 

반응형