본문 바로가기
카테고리 없음

스프링 MVC 패턴 개념 알아보기

by kangs' tong 2023. 9. 5.

스프링 MVC 패턴 개념 알아보기

1. 스프링 MVC란?

스프링 MVC는 스프링 프레임워크를 기반으로 한 웹 애플리케이션 개발을 위한 아키텍처 패턴입니다. 이 패턴은 Model-View-Controller의 약자로, 각각의 역할에 따라 애플리케이션의 코드를 구분하고 관리하는 방식을 제공합니다.

2. Model

Model은 애플리케이션의 비즈니스 로직을 담당하는 부분입니다. 데이터베이스와의 상호작용, 데이터의 처리 및 가공 등을 담당하며, 주로 자바의 POJO(Plain Old Java Object)로 표현됩니다. Model은 사용자의 요청에 따라 데이터를 처리하여 결과를 반환하거나, 외부 시스템과의 연동을 통해 데이터를 가져올 수도 있습니다.

3. View

View는 사용자에게 데이터를 시각적으로 표현하는 역할을 담당합니다. 웹 애플리케이션의 경우 HTML, CSS, JavaScript 등을 사용하여 웹 페이지를 만들어 사용자에게 보여줍니다. View는 Model이 처리한 데이터를 적절한 형태로 가공하여 사용자에게 전달하는 역할을 합니다. 스프링 MVC에서는 주로 JSP, Thymeleaf, Freemarker 등의 템플릿 엔진을 사용하여 View를 구현합니다.

4. Controller

Controller는 사용자의 요청을 받아들이고 해당 요청에 대한 처리를 담당합니다. 사용자로부터 입력받은 데이터를 Model에 전달하고, Model로부터 처리 결과를 받아 View에 전달합니다. 말하자면 사용자와 시스템이 상호작용하는 인터페이스 역할을 수행합니다. 컨트롤러는 스프링 MVC에서는 @Controller 어노테이션을 통해 정의되며, 요청 URL과 컨트롤러 메서드를 매핑하여 해당 메서드를 실행합니다.

5. 요청 처리 흐름

스프링 MVC에서의 요청 처리는 다음과 같은 흐름으로 이루어집니다:

  1. 사용자의 요청이 들어오면, DispatcherServlet이 이 요청을 받아들입니다.
  2. DispatcherServlet은 HandlerMapping을 통해 요청 URL에 대응하는 컨트롤러를 찾습니다.
  3. 찾은 컨트롤러를 실행하여 사용자 요청에 대한 처리를 수행합니다.
  4. 컨트롤러는 Model을 업데이트하고, 해당하는 View를 반환합니다.
  5. ViewResolver가 컨트롤러가 반환한 View를 찾아 응답을 생성합니다.
  6. 응답을 클라이언트에게 전송하여 사용자에게 결과를 보여줍니다.

마무리

스프링 MVC는 Model, View, Controller의 역할에 따라 웹 애플리케이션의 코드를 구분하고 관리하는 아키텍처 패턴입니다. Model은 데이터 처리, View는 사용자에게 데이터를 시각적으로 표현, Controller는 사용자의 요청을 받아들이고 해당 요청에 대한 처리를 담당합니다. 이를 통해 애플리케이션의 유지보수성과 확장성을 향상시킬 수 있습니다.

댓글