Spring MVC란

롱롱·2022년 10월 20일
2

spring

목록 보기
1/4

1. MVC 패턴이란

Model, View, Controller 세 영역으로 분리하여 코드의 확장성을 높이는 방법

Model은 어플리케이션이 포함해야 하는 데이터를 정의합니다.
이 데이터의 상태가 바뀌면 View와 Controller에게 그 사실을 알립니다.

View는 어플리케이션의 데이터가 어떻게 표시되어야 하는지 정의합니다.

Controller는 어플리케이션에서 사용자가 입력을 하면 Model과 View를 업데이트하는 로직을 가지고 있습니다.


2. Spring MVC의 구성요소

DispatcherServlet은 모든 클라이언트의 HTTP 요청을 먼저 받아서 적합한 Controller에 위임해주는 Front Controller입니다.

HandlerMapping은 클라이언트의 요청을 어떤 Controller가 처리할지 결정합니다.

ModelAndView는 Controller가 처리한 데이터와 화면에 대한 정보를 저장한 객체입니다.

ViewResolver는 Controller로부터 받은 View의 논리적 이름을 기반으로 View 객체를 매핑합니다.


3. Spring MVC의 작동 흐름

  1. Client가 웹 어플리케이션에 리소스를 요청합니다.
  2. DispatcherServlet이 처음 요청받은 URL을 실행하기 위해서는 어떤 Controller에 요청을 전송해야 하는지를, HandlerMapping으로부터 찾습니다.
  3. HandlerMapping이 주어진 요청에 대한 Controller를 찾아서 DispatcherServlet에 보냅니다.
  4. DispatcherServlet이 해당 Controller에 요청을 전송합니다.
  5. Controller가 요청사항에 따라 Service의 메소드를 호출합니다.
  6. Service가 필요한 데이터를 얻기 위해 DAO 클래스를 호출합니다.
  7. DAO가 DB에 필요한 데이터를 요청합니다.
  8. DB가 DAO에 필요한 데이터를 제공합니다.
  9. DAO가 받은 데이터를 Service에 리턴합니다.
  10. Service는 해당 데이터를 요구사항에 따라 처리하고, 그 결과를 Controller에 리턴합니다.
  11. Controller가 DispatcherServlet에 수행 결과가 포함된 ModelandView 객체를 리턴합니다.
  12. ModelAndView객체는 실제 JSP 정보를 가지고 있지 않으므로, DispatcherServlet은 요청 수행에 필요한 실제 JSP이름을 알아내기 위해, View Resolver Object를 참조합니다.
  13. View Resolver는 변환한 이름을 DispatcherServlet에 리턴합니다.
  14. DispatcherServlet은 View에 응답 생성을 요청합니다.
  15. View가 결과정보를 사용하여 화면에 보여집니다.

1개의 댓글

comment-user-thumbnail
2022년 10월 30일

덕분에 살았습니다 감사해요 ㅠㅠ

답글 달기