스프링 MVC의 구조

Lilac-_-P·2023년 4월 13일
0

스프링 MVC

목록 보기
5/15

스프링 MVC의 구조는 아래의 그림과 같다.

동작 순서는 다음과 같다. 이전 글에 마지막에 복기했던 내용과 거의 흡사하다.

  1. HTTP 요청이 DispatcherServlet에 도착
  2. 핸들러 조회 - 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러 조회
  3. 핸들러 어댑터 조회 - 핸들러를 실행할 수 있는 핸들러 어댑터를 조회
  4. 핸들러 어댑터 실행 - 핸들러 어댑터를 실행
  5. 핸들러 실행 - 핸들러 어댑터가 실제 핸들러를 실행
  6. ModelAndView 반환 - 핸들러가 반환하는 정보를 핸들러 어댑터가 ModelAndView로 "변환"해서 반환
  7. ViewResolver 호출 - 뷰 리졸버를 찾고 실행
  8. View 반환 - 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체 반환
  9. View 렌더링 - 뷰를 통해서 뷰 렌더링

스프링 MVC의 큰 강점은 스프링 MVC에 존재하는 대부분의 기능을 인터페이스 형태로 제공하기 때문에, DispatcherServlet의 코드 변경 없이, 인터페이스를 구현하는 것으로 원하는 기능을 변경하거나 확장할 수 있다는 점이다.

스프링 자체에서도 이 인터페이스들을 구현한 클래스들을 제공해주는데, 어떤 구현체들이 있고, 그 구현체들이 어떤 동작을 하는지에 대한 설명은 생략하겠다.

참고.
최근에는 스프링을 사용하기 위해 해야하는 설정들을 자동화해놓은 스프링 부트를 이용해서 많이 개발을 한다.
스프링 부트는 핸들러 매핑과 핸들러 어댑터, 뷰 리졸버 등등 웹 MVC가 동작되기 위한 여러 요소들을 자동으로 등록해준다. 사용자가 직접 이런 요소들을 확장해서 쓸 일은 흔하지 않기 때문에, 필요하다면 그 때 찾아보자.

profile
열심히 하자

0개의 댓글