Spring MVC

Spring MVC 란

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

기본 동작 흐름

기본적인 흐름은 다음과 같다.

사용자 요청 -> 프론트 컨트롤러 -> 핸들러 매핑 -> 핸들러 어댑터 -> 컨트롤러 -> 로직 수행(서비스) -> 
	컨트롤러 -> 뷰 리졸버 -> 응답(html)

프론트 컨트롤러

컨트롤러 중 맨 앞단에서 유저의 모든 요청을 받는 컨트롤로다.

  • 스프링에서는 DispatcherServlet 객체가 이 역할을 한다.
  • 요청에 대한 선처리 작업을 한다.

프론트 컨트롤러는 요청을 핸들러 매핑을 통해 어떤 핸들러가 요청을 처리해야하는지 매핑한다.

  • 스프링에서 HandlerMapping 객체가 이 역할을 한다.

매핑된 핸들러를 실제로 실행하는 역할은 핸들러 어댑터가 담당한다.

  • 스프링에서 HandlerAdapter 객체가 이 역할을 한다.

컨트롤러는 요청을 처리하는 로직을 담고있다.

  • Service 단위로 로직을 나누어 모듈화한다.
  • Service 에서는 DB에 접근할 수 있는 Repository를 가진다.

뷰 리졸버에서 뷰 파일을 렌더링하여 사용자 응답으로 보낸다.

  • 스프링에서 ViewResolver 객체가 이 역할을 한다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN