Study/Spring

[Spring] MVC 패턴

욘아리 2024. 5. 3. 14:35

MVC  패턴

MVC 패턴은 Model, View, Controller로 이루어진 디자인 패턴이다.

애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다.

웹 애플리케이션은 보통 이 MVC 패턴을 사용한다.

 

컨트롤러(Contorller)

HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다.

 

모델(Model)

뷰에 출력할 데이터를 담아둔다. 뷰에 필요한 데이터를 모두 모델에 담아서 전달해 주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 되고, 화면을 렌더링 하는 일에 집중할 수 있다.

 

뷰(View)

모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다. HTML을 생성하는 부분을 말한다.

 

MVC 패턴 이전
MVC 패턴

 

SpringMVC 구조

 

MVC 패턴을 이용한 대표적인 프레임워크로 스프링이 있다.

 

동작 순서

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

 

✨👩‍💻 ✨

스프링 MVC는 복잡해서 내부 구조를 다 파악한다는 것은 어렵지만, 실제 프로젝트를 진행할 때 대부분의 기능은 이미 구현되어 있기 때문에 큰 걱정을 하지 않아도 된다. 그러나 핵심 동작 방식을 알아두어야 문제가 발생했을 때 어떤 부분에서 문제가 발생했는지 쉽게 파악할 수 있다. 그렇기 때문에 지금은 전체적인 구조를 파악하고 이해하기 위해 정리해 보았다.

 

 

출처

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 | 김영한 - 인프런