Spring MVC 구조
1. Model
어플리케이션의 데이터이며, 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트
사용자가 이용하려는 모든 데이터를 가지고 있어야하며, 뷰 또는 컨트롤러에 대해 어떤 정보도 알 수 없어야
한다.
변경이 일어나면 그에 대한 처리 방법을 구현해야 한다(?)
2. View
시각적인 UI요소를 지칭하는 용어
모델이 가지고 있는 데이터를 저장하면 안된다.
모델이나 컨트롤러에 대한 정보를 포함하지 않고, 단순히 표시해주는 역할만을 해야 한다.
변경이 일어나면 그에 맞는 처리 방법을 구현해야 한다.
3. 컨트롤러
모델과 뷰를 연결해주는 역할
모델과 뷰에 대한 정보를 알아야 하며, 모델 또는 뷰의 변경을 인지하여 대처를 한다..
MVC의 처리순서 :
1. 클라이언트가 서버에 요청을 하면, front controller인 DispatcherServlet 클래스가 그 요청을 받는다.
2. DispatcherServlet은 프로젝트 내의 servlet-context.xml 파일의 @Controller 인자를 통해 등록한
요청 위임 컨트롤러를 찾고, 만일 매핑된 컨트롤러가 존재하면 @RequestMapping을 통해 요청을 처리할
메소드로 이동한다.
3. 컨트롤러는 해당 요청을 처리할 Service의 경로를 받아 비즈니스로직을 Service에게 위임한다.
4. Service는 요청에 필요한 작업을 수행하고, 만일 DB에 접근해야 한다면 DAO에 위임한다.
5. DAO는 요청받은 DB정보를 DTO를 통해 받아 서비스에게 전달한다.
6. 서비스는 전달받은 데이터를 컨트롤러에게 전달한다.
7. 컨트롤러는 Model 객체에게 요청에 맞는 view 정보를 담에 DispatcherServlet에게 전송한다.
8. DispatcherServlet은 viewResolver에게 전달받은 View정보를 전달한다,
9. ViewResolver는 응답할 View에 대한 Jsp를 찾에 DispatcherServlet에게 전달한다.
10. DispatcherServlet은 응답할 뷰의 Render를 지시하고 뷰는 로직을 처리한다.
11. DispatcherServlet은 클라이언트에게 Rendering된 뷰를 응답하며 요청을 마친다.
'웹 프로그래밍' 카테고리의 다른 글
Mybatis란? (0) | 2021.05.24 |
---|---|
서블릿이란? (0) | 2021.05.20 |
문법 - JSTL 사용하기 (0) | 2021.05.11 |
Spirng Framework - 의존성 주입 실습 (0) | 2021.05.06 |
Spring Framework - 1. 시작하기 (0) | 2021.05.06 |