MVC 패턴이란
- 소프트웨어 디자인 패턴 중 하나
- M (Model) / V (View) / C(Controller)
- Model: 어플리케이션 정보나 데이터, DB등을 의미함
- View: 사용자에게 보여지는 화면, UI를 말함
- Controller 데이터와 비즈니스 로직 사이의 상호 동작을 관리함. 즉, 모델과 뷰를 통제한다. MVC패턴에서 View와 Model이 직접적인 상호 소통을 하지 않도록 관리함
- MVC 패턴은 MVC1 패턴과, 스프링이 사용하고 있는 MVC2 패턴으로 나눌 수 있음
MVC1
- 위 패턴의 경우 View와 Controller를 JSP가 담당하는 형태를 가짐
- 구현 난이도는 쉬우나, 내용이 복잡하고 거대해질수록 이 패턴은 힘을 잃는다. (유지보수에 있어서 문제가 발생한다)
MVC2
- 위 패턴은 널리 표준으로 사용되는 패턴이다.
- MVC1과 다르게 Controller, View가 분리되어 있다.
- Controller은 RequestMapping을 통해 URL을 확인하여 View에 던져줄지, Service로 들어가 추가적인 Business Login을 할지 결정한다.
- 요청을 하나의 컨트롤러(Servlet)이 먼저 받고, 역할이 분리되어 MVC 패턴에서 단점을 보완할 수 있다.
- 즉, 개발자는 M, V, C 중에서 수정해야 할 부분이 있다면, 그것만 꺼내어서 수정하면 된다. (유지보수 좋음)
Spring MVC Framework
동작순서
- Client로부터 요청이 들어오면 DispatcherServlet 효출
- DispatcherServlet은 받은 요청을 HandlerMapping에게 던져줌, 요청받은 URL을 분석하여 HandlerMapping이 적합한 Controller를 선택하여 반환한다.
- DispatcherServlet은 다음으로 HandlerAdapter를 호출한다. HandlerAdapter은 해당하는 Controller중 요청한 URL에 맞는 적합한 Method를 찾아준다.
- Controller은 Business Logic을 처리하고, 해당하는 결과를 View에 전달할 객체를 Model에 저장한다.
- Controller은 View name을 DispatcherServlet에 리턴한다.
- DispatcherServlet은 ViewResolver를 호출하여 Controller가 리턴한 View name을 기반으로 적합한 View를 찾아준다.
- DispatcherServlet은 View 객체에 처리결과를 넘겨 최종 결과를 보여주도록 요청한다.
- View 객체는 해당하는 View를 호출하며, View는 Model 객체에서 화면 표시에 필요한 객체를 가져와 화면 표시를 처리하고 Client에게 넘겨준다.
'Spring' 카테고리의 다른 글
스프링 부트 테스트 코드 작성 방법 (0) | 2022.09.02 |
---|---|
[Spring] Spring Bean 정리 (0) | 2022.07.28 |