MVC 패턴
MVC는 모델 - 뷰 - 컨트롤러 구조의 널리 사용되는 소프트웨어 디자인 패턴이다. 소프트웨어 내에 뷰와 비지니스 로직을 구분하는데 중점을 둔 패턴이다. 이와 같은 관심사 분리를 통해서 업무의 분리와 향상된 관리를 제공한다.
MVC 소프트웨어 디자인 패턴의 세가지 부분에 대한 설명으로는 다음과 같다.
- Model : 데이터와 비지니스 로직을 관리
- View : 레이아웃과 화면을 처리
- Controller : 모델과 뷰의 처리를 제어하고 중계
Spring MVC
스프링 MVC란 웹 애플리케이션 개발을 위한 MVC 패턴 기반의 웹 프레임워크를 말한다. SPring MVC는 애플리케이션의 구성요소를 Model, View, Controller로 분리한다. 또한 Spring MVC는 아래와 같은 컴포넌트들로 구성된다.
- Dispatcher Servlet : 클라이언트의 요청을 받는 서블릿으로, 요청에 맞는 컨트롤러에게 요청을 전달함
- Handler Mapping : 요청이 어떤 컨트롤러에게 온 것인지 URI를 통해 확인
- Controlelr : 클라이언트의 요청을 받아 처리하여 결과를 Dispatcher Servlet에게 전달.
- ViewResolver : View에 알맞는 View를 찾음.
- View : 사용자에게 보내질 UI 화면을 의미.
Spring MVC 동작원리
- 클라이언트는 URL을 통해 서버로 요청을 전달한다.
- 디스패처 서블릿은 핸들러 매핑을 통해서 어떤 컨트롤러에게 온 요청인지 찾는다.
- 컨트롤러를 찾은 디스패터 서블릿은 핸들러 어댑터에게 요청 전달을 맡긴다.
- 핸들러 어댑터는 해당 컨트롤러에 요청을 전달한다.
- 컨트롤러는 비지니스 로직을 처리한 뒤 반환할 뷰의 이름을 함께 반환한다.
- 디스패처 서블릿은 뷰 리졸버를 통해 반환할 뷰를 찾는다.
- 디스패처 서블릿은 컨트롤러에서 뷰에 전달할 데이터를 추가한다.
- 데이터가 추가된 뷰를 반환한다.