728x90
320x100
기본 개념
Spring Web MVC 패턴
Spring Web MVC는 Model-View-Controller(MVC) 패턴을 기반으로 한다.
- Model: 애플리케이션의 데이터와 비즈니스 로직 담당
- View: 사용자 인터페이스 담당. (JSP, Thymeleaf 등의 템플릿 엔진)
- Controller: 사용자 요청을 처리, 모델-뷰 연결 -> Dispatcher Servlet이 컨트롤러 호출
Dispatcher Servlet
이 때 Dispatcher Servlet은 Spring Web MVC 프레임워크의 핵심 구성 요소로서, 클라이언트의 모든 요청을 받아 적절한 컨트롤러(핸들러)를 찾아 전달하는 역할을 한다.
이렇게 컨트롤러 구현을 단순화할 수 있으며, 비즈니스 로직에 집중하고 HTTP 요청 및 응답 처리 등에 대한 세세한 작업에 신경 쓸 필요가 없어진다.
이러한 Spring Web MVC의 MVC 패턴과 Dispatcher Servlet을 통해 관심사의 분리가 가능하고, 일관성 있는 요청 처리가 가능해지는 것이다.
Spring Web MVC와 Dispatcher Servlet 동작 원리
- 요청 수신
- Dispatcher Servlet > 클라이언트로부터 발생한 HTTP 요청을 받아들인다.
- Handler Mapping
- 요청 URL에 매핑된 핸들러(컨트롤러) 조회
- Dispatcher Servlet은 요청에 대한 적절한 핸들러(Handler)를 찾기 위해 Handler Mapping 전략 사용
- HandlerMapping 인터페이스를 구현해 사용
- 예를 들어 RequestMappingHandlerMapping 의 경우 @RequestMapping 어노테이션이 적용된 메서드로 판단
- 요청 URL에 매핑된 핸들러(컨트롤러) 조회
- Controller 반환
- Handler Mapping > URL과 매핑되는 적절한 핸들러를 결정하고 컨트롤러명 반환
- HandlerAdapter 실행
- Dispatcher Servlet > 응답받은 컨트롤러명으로 핸들러 어댑터 호출
- Handler 실행
- HandlerAdapter > 실제 핸들러(컨트롤러) 호출
- Controller > 받은 요청을 처리하고 비즈니스 로직을 수행
- 사용자의 요청을 처리하고 적절한 모델을 생성하며 뷰(View)를 결정한다.
- 클라이언트에게 반환할 데이터를 포함해 Handler Adapter로 반환
- HandlerAdapter > 실제 핸들러(컨트롤러) 호출
- ModelAndView 반환
- Handler Adapter > 반환받은 정보를 ModelAndView객체로 변환해서 반환
- 이 모델(Model) 객체는 클라이언트에 반환될 데이터를 포함하고, 뷰(View)의 이름을 가지고 있음
- View Resolver 검색
- Dispatcher Servlet > ModelAndView 객체의 뷰 이름을 사용하여 적절한 View Resolver 검색
- View 반환
- View Resolver > 뷰의 논리 이름을 물리 이름으로 바꾸고(물리적인 뷰 파일의 경로로 매핑), 렌더링 역할을 담당하는 뷰 객체 반환
- View 렌더링
- View Resolver가 결정한 뷰는 클라이언트에 반환될 HTML이나 다른 콘텐츠를 생성
300x250
반응형
GitHub 댓글