07. Spring MVC

2021. 10. 3. 21:54Spring/Computer Science

728x90

  • Spring 프레임워크에서 제공하는 웹 모듈이다.
  • MVC 는 Model-View-Controller 의 약자로, 기본 시스템 모듈을 MVC 로 나누어 구현되어있다.
    • Model 은 '데이터' 디자인을 담당한다.
      • ex. 상품 목록, 주문 내역 등
    • View 는 '실제로 렌더링되어 보이는 페이지' 를 담당한다.
      • ex. .JSP, .html 파일들이 여기에 해당된다.
    • Controller 는 사용자의 요청을 받고, 응답을 주는 로직을 담당한다.
      • ex. GET 등의 uri 매핑이 여기에 해당된다.
  • Spring MVC 모듈을 사용하여, 백엔드 프로그래밍의 기본 프레임워크를 잡는다.
    • Web 서버에 특화되어 만들어진 모듈이라, 개발자가 해야할 영역을 더 적게 만들어준다.
    • 즉 기존에 Spring 보다 더 깔끔하고 간편하게 개발 가능.

기본 동작의 흐름

Spring Web MVC

  • Dispatcher Servlet
    • 컨트롤러 중에서도, 맨 앞단에서 유저의 유청을 받는 컨트롤러를 프론트 컨트롤러라고 한다.
    • DispatcherServlet 객체가 이 역할을 한다.
    • 모든 요청을 한곳에서 받아서 필요한 처리들을 한 뒤, Dispatcher가 받은 요청은 HandlerMapping으로 넘어간다.
    • 해당 Handler의 실행 결과를 Http Response형태로 만드는 역할을 한다.
  •  Handler Mapping
    • 해당 요청을 어떤 핸들러가 처리해야하는지를 매핑한다.
  • Controller
    • 해당 요청을 처리하는 로직을 담고있다.
    • 보통 요청의 종류 혹은 로직의 분류에 따라 내부적으로 Service 단위로 나누어 모듈화 한다.
    • 각 서비스에서는 DB 접근할 수 있는 Repository 객체를 이용하여 데이터에 접근할 수 있다.
  • View Resolver
    • 컨트롤러는 서비스에서의 로직 처리 후, 결과를 뷰 리졸버를 거쳐 뷰 파일을 렌더링하여 내보낸다.
      • View Name(the logical names)에 prefix, suffix를 적용하여 View Object(the physical view files)를 반환한다.
    • 이 후에 해당 View에서 이 Model data를 이용하여 적절한 페이지를 만들어 사용자에게 보여준다.

 

참고

'Spring > Computer Science' 카테고리의 다른 글

06. 의존관계 자동 주입  (0) 2021.09.27
05. 컴포넌트 스캔  (0) 2021.09.27
04. Bean  (0) 2021.09.26
03. 객체지향 3가지 원칙의 적용과 IOC  (0) 2021.09.26
02. 의존성 주입, DI(Dependency Injection  (0) 2021.09.26