++ 원시 패턴과 비교해도 좋을 듯!
Spring MVC는 Java 기반의 웹 애플리케이션 개발을 위한 프레임워크로, Model-View-Controller(MVC) 아키텍처 패턴을 기반으로 한다.
MVC는 소프트웨어 디자인 패턴 중 하나로, 애플리케이션을 세 가지 주요 구성 요소로 나누어 개발하는 방식이다.
Spring MVC의 구조는 다음과 같이 세 가지 주요 구성 요소로 이루어져 있다.
Controller (컨트롤러): 사용자의 요청을 처리하는 부분으로, 클라이언트로부터의 요청을 받아 해당 요청을 처리하고, Model을 업데이트하거나 View에 결과를 전달한다.
Model (모델): 데이터와 비즈니스 로직을 담당하는 부분으로, 데이터의 상태를 관리하고 비즈니스 로직을 수행한다. 주로 데이터베이스와의 상호작용이나 다양한 비즈니스 로직을 처리한다.
View (뷰): 사용자 인터페이스(UI)를 담당하는 부분으로, 클라이언트에게 결과를 표시하고 사용자 입력을 받는다. 주로 웹 페이지나 화면을 표현하는데 사용된다.
HTML 페이지 출력
PDF, Excel 등의 문서 형태로 출력
XML, JSON 등 특정 형식의 포맷으로 변환
출처 김영한님 Spring MVC 강의
위는 개괄적인 그림, 아래는 더 자세한 설명이다.
클라이언트가 웹 브라우저 등을 통해 요청을 보낸다.
요청은 DispatcherServlet(디스패처 서블릿)에 도착하고, DispatcherServlet은 요청을 처리하기 위해 HandlerMapping(핸들러 매핑)에게 요청을 전달한다.
HandlerMapping은 요청을 처리할 컨트롤러(Controller)를 찾아서 반환한다.
DispatcherServlet은 해당 컨트롤러(Controller)를 실행하여 요청을 처리한다.
컨트롤러(Controller)는 요청을 처리하고, 필요한 비즈니스 로직을 수행하며, Model에 데이터를 업데이트한다.
컨트롤러(Controller)는 뷰(View)의 이름을 반환하고, DispatcherServlet은 해당 뷰(View)를 찾아서 반환한다.
DispatcherServlet은 뷰(View)를 실행하여 사용자에게 결과를 표시하고, 클라이언트에게 응답을 보낸다.
이러한 순서로 요청과 응답이 처리되어 웹 애플리케이션이 동작하게 된다.
더 자세한 설명과 훌륭한 그림이 이 블로그에 있으나, 무단 배포 및 재사용 금지이므로 링크만 남긴다.