본문 바로가기
Spring

Spring MVC란

by 차가운개발 2024. 9. 3.

MVC 패턴의 사용 목적

각 컴포넌트가 서로 분리되어 각자의 역할에 집중할 수 있기 때문에 시스템 결합도를 낮출 수 있다. 유지보수가 쉬우며, 중복 코드를 제거할 수 있고, 애플리케이션의 확장성과 유연성이 증가한다.

 

 

MVC란

  • Model
    웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청 사항을 처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려주어야 하는데, 이 때 응답으로 돌려주는 결과 데이터를 Model이라고 한다.
  • View
    View는 Model을 이용해서 화면에 보이는 리소스를 제공하는 역할을 한다.
  • Controller
    클라이언트의 요청을 직접적으로 전달받는 엔드포인트로써 Model과 View의 중간에서 상호작용을 해주는 역할
    클라이언트의 요청을 전달받아 비즈니스 로직을 거친 후 Model 데이터가 만들어져 이를 View로 전달하는 역할을 한다.

 

 

Spring MVC의 구조

  • DispatcherServlet
    Front Controller의 역할을 수행하며 클라이언트의 요청을 각각의 컨트롤러에게 위임한다.
    가장 앞 단에서 요청을 처리하는 컨트롤러로써 요청부터 응답까지 전반적인 처리과정을 통제한다.
  • HandlerMapping
    요청에 맞는 컨트롤러를 탐색한다.
  • HandlerAdapter
    매핑된 컨트롤러의 실행을 요청한다.
  • Controller
    DispatcherServlet이 전달해준 HTTP 요청을 처리하고 결과를 Model에 저장한다.
  • ModelAndView
    컨트롤러에 의해 반환된 Model과 View가 래핑된 객체다.
  • ViewResolver
    View의 이름을 확인하여 컨트롤러로 부터 받은 처리결과를 반영할 view를 탐색한다.
  • View
    로직 처리 결과를 반영할 최종 화면을 생성한다.

 

 

Spring MVC 동작과정

  1. 클라이언트의 요청을 DispatcherServlet이 받는다.
  2. DispatcherServlet은 요청된 URL을 HadlerMapping에 넘겨 호출해야 할 컨트롤러 메서드 정보를 얻는다.
  3. Dispatcher Servlet이 메서드 정보가 담겨 있는 HandlerAdapter를 가져온다.
  4. HandlerAdapter의 메서드를 실행한다.
  5. 컨트롤러는 비즈니스 로직을 처리하고 그 결과를 바탕으로 뷰에 전달할 데이터를 Model에 저장한다.
    DispatcherServlet에게 View의 이름을 반환한다.
  6. DispatcherServlet은 View의 이름을 View Resolver에 전달하여 View를 얻는다.
  7. DispatcherServlet은 View에게 화면 표시를 의뢰한다.
  8. View는 해당하는 뷰를 호출하며 Model에서 화면 표시에 필요한 데이터를 가져와 화면 표시를 처리한다.

'Spring' 카테고리의 다른 글

[Spring] WebClient  (1) 2024.12.09
Spring Mybatis 페이징 처리 이해하기 2  (0) 2024.09.11
Spring Mybatis 페이징 처리 이해하기 1  (0) 2024.09.11
Spring Framework란  (2) 2024.09.03