참고자료

  • 블로그 [기회는 찬스] => 링크
  • 블로그 [망나니 개발자] => 링크
  • 블로그 [seculoper] => 링크

 

 

 

 

 

# Spring에서 @Controller 란?

  • View에 표시될 데이터가 있는 Model 객체를 만들고 올바른 뷰를 선택하는 일을 담당한다.
  • @ResponseBody를 사용하여 HTTP Response Body에 데이터를 담아 요청을 완료할 수 있다.
    => HTTP Response Body에 데이터를 담는 것은 RESTful 웹 서비스에 대한 응답에 매우 유용(필요한 데이터만 반환)

Spring MVC 처리과정(간략하게)

 

  1. Client는 URI 형식으로 웹 서비스에 요청(Request)을 보낸다.
  2. Mapping 되는 Handler와 그 Type을 찾는 DispatcherServlet이 요청을 인터셉트한다.
  3. 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를 찾아 렌더링 해준다.
반응형

+ Recent posts