-
Spring MVC 구조의 이해 및 처리과정SPRING, JAVASCRIPT 2019. 8. 12. 17:00
MVC 구조란 무엇이며 어떠한 방식 및 과정의 처리를 진행하는 구조일까?
웹 개발자로 인턴과정을 해보면서 선임 개발자들한테도 수 없이 중요성을 들었고 이 구조를 통해 개발했는데, 구조를 정확히 파악하지 못한 것 같아 정리해보려고 한다.
1. Model(모델)
어플리케이션의 데이터이며, 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트이다.
- 사용자가 이용하려는 모든 데이터를 가지고 있어야하며, View(뷰) 또는 Controller(컨트롤러)에 대해 어떤 정보도 알 수 없어야 한다.
- 변경이 일어나면 처리 방법을 구현해야 한다.
2. View(뷰)
시각적인 UI 요소를 지칭하는 용어이다.
- Model(모델)이 가지고 있는 데이터를 저장하면 안된다.
- Model(모델)이나 Controller(컨트롤러)에 대한 정보를 알면 안되며 단순히 표시해주는 역할을 가지고 있다.
- 변경이 일어나면 처리 방법을 구현해야 한다.
3. Controller(컨트롤러)
Model(모델)과 View(뷰)를 연결해주는 역할을 한다.
- Model(모델) 또는 View(뷰)에 대한 정보를 알아야 한다.
- Model(모델) 또는 View(뷰)의 변경을 인지하여 대처를 해야한다.
MVC의 처리 순서
- 클라이언트가 서버에 요청을 하면, front controller인 DispatcherServlet 클래스가 요청을 받는다.
- DispatcherServlet는 프로젝트 파일 내의 servlet-context.xml 파일의 @Controller 인자를 통해 등록한 요청 위임 컨트롤러를 찾아 매핑(mapping)된 컨트롤러가 존재하면 @RequestMapping을 통해 요청을 처리할 메소드로 이동한다.
- 컨트롤러는 해당 요청을 처리할 Service(서비스)를 받아 비즈니스로직을 서비스에게 위임한다.
- Service(서비스)는 요청에 필요한 작업을 수행하고, 요청에 대해 DB에 접근해야한다면 DAO에 요청하여 처리를 위임한다.
- DAO는 DB정보를 DTO를 통해 받아 서비스에게 전달한다.
- 서비스는 전달받은 데이터를 컨트롤러에게 전달한다.
- 컨트롤러는 Model(모델) 객체에게 요청에 맞는 View(뷰) 정보를 담아 DispatcherServlet에게 전송한다.
- DispatcherServlet는 ViewResolver에게 전달받은 View정보를 전달한다.
- ViewResolver는 응답할 View에 대한 JSP를 찾아 DispatcherServlet에게 전달한다.
- DispatcherServlet는 응답할 뷰의 Render를 지시하고 뷰는 로직을 처리한다.
- DispatcherServlet는 클라이언트에게 Rendering된 뷰를 응답하며 요청을 마친다.
'SPRING, JAVASCRIPT' 카테고리의 다른 글
JSP 페이지 모듈화하기, include 액션태그를 이용해보자 (0) 2019.08.17 DAO, DTO(VO) 란 무엇일까? (2) 2019.08.14