Spring
MVC 아키텍쳐 및 SpringMVC 구조
쭈녁
2023. 12. 26. 22:47
MVC 아키텍쳐
MVC 란?
Model - View - Controller를 독립적으로 구성하여 확장이 가능하고 유연하도록 설계한 아키텍처
- Model :
데이터가 담겨 있는 객체
클라이언트의 요청에 대한 응답할 결과 데이터가 담기는 곳
- View :
요청에 따른 결과값을 담은 Model을 받아 웹브라우저나 애플리케이션 화면에 담아 제공
- Controller :
클라이언트의 요청을 받아 로직을 수행하여 결과값을 주는 역할
MVC1 패턴
MVC1 패턴은 View와 Controller를 모두 JSP가 담당했었다. JSP가 요청을 받고 응답을 View로 처리하는 구조
JSP에 요청 응답 및 화면에 뿌려주는 역할까지 하여 재사용성이 떨어지고 유지보수가 어려웠다.
이로 인해 MVC2패턴이 생겨났다.
MVC2 패턴
MVC2 패턴은 1패턴과 다르게 요청을 controller가 받아 Model을 생성하고 View에 Model을 전달하는 방식으로 기존 방식을 보완하였다. SpringFramwork의 MVC는 이 두 번째 패턴과 같은 모습을 하고 있다.
Srping Framework의 MVC 구조
요청 및 응답 순서
- 클라이언트에서 HTTP요청이 들어온다.
- 요청이 DispatcherServlet으로 들어온다.
- 해당 요청을 요청 URL, 요청 메서드에 따라 수행할 Handler를 Mapping 하고 Adapter를 통하여 찾아옴
- Handler(Controller)가 해당 요청을 받아 로직을 수행하여 결과를 반환
- 결과를 담은 Model과 View의 주소값(문자열)을 담아 DispathcerServlet에 보냄
- 받은 주소값의 View를 ViewResolver를 통해 받아옴
- Model(결과 데이터가 담긴)을 View에 랜더링 하여 클라이언트에 응답함