참고자료
# Spring에서 @Controller 란?
- View에 표시될 데이터가 있는 Model 객체를 만들고 올바른 뷰를 선택하는 일을 담당한다.
- @ResponseBody를 사용하여 HTTP Response Body에 데이터를 담아 요청을 완료할 수 있다.
=> HTTP Response Body에 데이터를 담는 것은 RESTful 웹 서비스에 대한 응답에 매우 유용(필요한 데이터만 반환)
- Client는 URI 형식으로 웹 서비스에 요청(Request)을 보낸다.
- Mapping 되는 Handler와 그 Type을 찾는 DispatcherServlet이 요청을 인터셉트한다.
- Controller가 요청을 처리한 후에 응답을 DispatcherServlet으로 반환하고, DispatcherServlet은 View를
사용자에게 반환한다.
* @Controller가 View를 반환하기 위해 ViewResolver가 사용되며, ViewResolver 설정에 맞게 View를 찾아 렌더링 한다.
# DispatcherServlet 이란?
- DispatcherServlet은 Spring MVC의 중심이다.
=> 이것을 이해하면 Spring MVC를 이해하는 것과 같다. - Dispatch의 의미는 급파하다, 파견 등의 의미로, 해석하면
받은 요청을 어딘가로 빨리빨리 보내는 서블릿이라는 뜻이다. - 가장 앞단에서 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해준다.
=> 프론트 컨트롤러(Front Controller)라고 정의할 수도 있습니다.
- 프론트 컨트롤러란?
서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아 처리해주는 컨트롤러입니다
MVC 구조에서 함께 사용되는 디자인 패턴입니다.
# DispatcherServlet의 흐름
스프링 MVC에서는 Dispatcher Servlet이라는 모든 요청을 담당하는 서블릿을 두고 컨트롤러에 위임하여 요청 처리.
=> JavaEE로 웹서비스를 직접 구현할 때에는 Servlet 인터페이스의 구현체를 직접 만들어 사용했다고 한다.
* Java EE(Java Enterprise Edition) 에는 기업용 어플리케이션과 클라우드 애플리케이션 개발에 필요한
복합적인 기술들이 정의되고 모여있다.
=>Servlet, JSP(Java Server Page)은 Java EE에 포함된 하위 기술들이다.
ViewResolver란?
- 사용자가 요청한 것에 대한 응답 view를 렌더링 하는 역할
=> view 이름으로부터 사용될 view 객체를 맵핑하는 역할 - 스프링 부트에서는 view 이름만 적어주면 알맞은 view를 찾아 렌더링 해준다.
반응형
'프로그래밍언어 & 프레임워크 > 스프링(Spring)' 카테고리의 다른 글
싱글턴 패턴(Singleton Pattern) (0) | 2021.12.05 |
---|---|
[Spring Boot]Swagger 사용해보기(Gradle) (2) | 2021.12.03 |
DI(Dependency Injection) 란? (0) | 2021.12.02 |
POJO란?(Plain Old Java Object) (1) | 2021.11.28 |
[Spring] form(폼)에서 put, delete 사용하기 (0) | 2021.11.18 |