spring MVC 흐름/구조

이은호·2024년 6월 19일

spring

목록 보기
1/2
post-thumbnail

스프링 MVC(Spring Model-View-Controller) 패턴은 웹 애플리케이션을 개발할 때 사용하는 아키텍처 패턴이다. 이 패턴은 애플리케이션의 구조를 세 가지 주요 부분인 모델(Model), 뷰(View), 컨트롤러(Controller)로 나누어 각 부분이 명확하게 분리되도록 한다. 이렇게 하면 코드의 재사용성과 유지보수성이 크게 향상된다.

주요 구성요소

Model (모델)

  1. 애플리케이션의 데이터와 비즈니스 로직을 담당한다.
  2. 데이터베이스와의 상호작용, 데이터 검증, 비즈니스 규칙 등을 처리한다.
  3. 주로 Java 클래스로 구현된다.

View(뷰)

  1. 사용자에게 보여지는 UI를 담당한다.
  2. 모델 데이터를 사용자에게 표시하는 역할을 한다.
  3. JSP, Thymeleaf, FreeMarker 등의 템플릿 엔진을 사용하여 구현된다.

Cotroller(컨트롤러)

  1. 사용자의 요청을 받아서 처리하고, 처리 결과를 모델에 반영하고, 적절한 뷰로 데이터를 전달한다.
  2. 주로 @Controller 어노테이션을 사용한 Java 클래스로 구현된다.

흐름도

1.사용자요청

  • 사용자가 웹 브라우저를 통해 특정 URL에 요청을 보낸다

2.DispatcherServlet

  • 모든요청은 DispatcherServlet으로 들어온다. 이는 스프링 MVC의 프론트 컨트롤러로서, 요청을 적절한 컨트롤러로 라우팅하는 역할을 한다.

3.컨트롤러

  • DispatcherServlet은 요청을 처리할 적절한 컨트롤러를 찾는다.
  • 컨트롤러는 요청을 처리하고 필요한 비즈니스 로직을 호출합니다. 이과정에서 모델 데이터를변경하거나 조회할 수 있다.

4.모델
-비즈니스 로직을 처리하고, 데이터베이스와 상호작용하며, 결과 데이터를 생성한다.

5.뷰

  • 컨트롤러는 모델 데이터를 사용하여 적절한 뷰를 선택한다.
  • viewResolver는 뷰 이름을 실제 뷰 페이지로 변환한다.
  • 뷰는 모델 데이터를 사용하여 사용자에게 결과를 표시한다.

6.응답

  • 뷰에서 생성된 응답을 dispatcherservlet이 받아서 사용자에게 전달한다. 요청 처리 과정 <그림>

0개의 댓글