Hansel

1. 스프링 MVC 패턴 본문

Spring/MVC

1. 스프링 MVC 패턴

핑슬 2022. 3. 26. 13:47

스프링의 MVC 패턴은 모델  컨트롤러의 패턴을 말한다.

 

1. MVC 패턴 개념

MVC  패턴은 컨트롤러(Controller)와 뷰(View)라는 영역으로 서로 역할을 나눈 것을 말한다.

컨트롤러: HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 

그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다

모델 : 뷰에 출력할 데이터를 담아둔다. 
뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에

뷰는 비즈니스 로직이나 데이터 접근을 몰라도 되고
화면을 렌더링 하는 일에 집중할 수 있다.

: 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다. 

2. 프론트 컨트롤러 패턴

이 스프링 MVC 패턴에선 프론트 컨트롤러 패턴을 사용한다.

프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받고

프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.

스프링 웹 MVC의 핵심이 프론트 컨트롤러이며, 

스프링 웹 MVC의 DispatcherServlet이 프론트컨트롤러 패턴으로 구현되어 있다.

 

3. 스프링 MVC의 구조 


스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿(DispatcherServlet)이다.
그리고 이 디스패처 서블릿이 바로 스프링 MVC의 핵심이다.

 

어댑터 패턴 

프론트 컨트롤러가 다양한 방식의 컨트롤러를 처리할 수 있도록 하는 패턴

  • 핸들러 어댑터: 중간에 어댑터 역할을 하는 어댑터가 어댑터 역할을 해주는 덕분에 다양한 종류의 컨트롤러를 호출할 수 있다
  • 핸들러: 어댑터가 있기 때문에 꼭 컨트롤러의 개념 뿐만 아니라 어떠한 것이든 해당하는 종류의 어댑터만 있으면 다 처리할 수 있다.

 

동작 순서

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

'Spring > MVC' 카테고리의 다른 글

6. 메세지와 국제화  (0) 2022.03.29
5. 스프링 MVC / 기타  (0) 2022.03.26
4. 스프링 MVC / 타임리프 기본  (0) 2022.03.26
3. 스프링 MVC 기본 기능 2  (0) 2022.03.26
2. 스프링 MVC 기본 기능 1  (0) 2022.03.26