카테고리 없음

Spring MVC 패턴에서 요청/응답 흐름

최종군 2024. 11. 20. 19:34

Spring MVC(Model-View-Controller)는 클라이언트 요청을 처리하고 응답하는 과정을

명확히 분리하여 유지보수성과 확장성을 높이는 디자인 패턴이다

 

1.

클라이언트 요청

사용자가 브라우저 또는 어플리케이션을 통해 특정URL로 요청을 보냅니다.

 

2.

DispatcherServlet (프론트 컨트롤러)

Spring MVC의 중심에 위치한 DispatcherServlet이 요청을 수신

 

3.

핸들러 매핑 (Handler Mapping)

DispatcherServlet은 Handler Mapping을 통해 적절한 Controller를 찾습니다

Handler Mapping은 요청 URL과 매핑된 Controller 및 메서드를 결정

 

4.

매핑된 Controller가 호출되어 요청을 처리하고.

비즈니스 로직을 실행하거나, 필요한 데이터를 서비스(Service) 또는 데이터베이스 계층에서 가져옵니다.

데이터를 처리한 후, 이를 View에 전달하거나 JSON, XML과 같은 형식으로 응답을 반환합니다.

 

5.

모델 (Model)

Controller는 요청 처리 결과(데이터)를 Model 객체에 저장합니다.

Model 객체는 View에 데이터를 전달하는 역할을 합니다.

 

6.

뷰 리졸버 (View Resolver)

요청의 응답을 렌더링할 View를 결정합니다.

View Resolver는 Controller가 반환한 View 이름에 따라 적절한 View를 선택합니다

 

 

뷰 (View)

View는 Model 데이터를 기반으로 사용자에게 보여질 화면(HTML, JSON 등)을 생성

JSP, Thymeleaf, JSON 데이터 등으로 렌더링.

 

응답 반환

  • 렌더링된 결과(View)는 DispatcherServlet으로 다시 전달되고, 최종적으로 클라이언트에게 반환됩니다.