2. MVC
KUCIN
• Model : 어플리케이션의 데이터와 비즈니스 로직을 담는 객체이다.
• View : Model의 정보를 사용자에게 표시한다. 하나의 Model을
다양한 View에서 사용할 수 있다.
• Controller : Model과 View의 중계역할로 view를 선택한다.
사용자의 요청을 받아 Model에 변경된 상태를 반영하고, 응답
3. HSQLDB Connection
KUCIN
– MVC 패턴은 UI 코드와 비즈니스 코드를 분리함으로써
종속성을 줄이고, 재사용성을 높이고, 보다 쉬운 변경이
가능하도록 한다.
– 전자정부프레임워크에서 “MVC 서비스”란 MVC 패턴을
활용한 Web MVC Framework를 의미한다.
8. Spring MVC
- DispatcherServlet
DispatcherServlet은 스프링MVC의 웹요청을 처리하는 전 과정을 관리하는
전달자로 요청에 따른 컨트롤러를 구해 처리된 결과를 클라이언트에게
응답하는 스프링MVC의 핵심
- HandlerMapping
웹요청시 해당 URL을 어떤 Controller가 처리할지 검색하여
DispatcherServlet에 전달
- Controller
클라이언트의 요청을 처리한다. 결과 데이터를 ModelAndView에 반영하고
DispatcherServlet에 전달
- ModelAndView
컨트롤러가 처리한 결과와 View에 대한 정보를 가진다.
- ViewResolver
결과를 생성할 View 를 결정한다.
- View
결과 데이터인 Model 객체를 display한다.
9. Spring MVC 처리과정
1. 클라이언트의 요청이 DispatcherServlet에 전달
2. DispatcherServlet은 HandlerMapping에게 클라이언트의
요청을 처리할 컨트롤러 객체를 요청
3. HandlerMapping은 요청을 처리할 컨트롤러를
DispatcherServlet에 알려준다.
4. DispatcherServlet은 해당 Controller에 처리를 요청
5. Controller는 처리결과 및 view정보를 ModelAndView에 담아
DispatcherServlet에 전달
10. Spring MVC 처리과정
6. DispatcherServlet은 처리결과를 생성할 View를 구하기 위해
ViewResolver에 요청
7. ViewResolver는 처리결과를 생성할 View를
DispatcherServlet에 전달
8. DispatcherServlet은 View에 응답생성을 요청
9. View는 클라이언트에 전송할 응답을 생성
14. MVC는 피자 [참고]
M이 Model
M은 '토핑„
피자의 맛 이를테면 하와이안인지 페페로니인지 불고기인지 결정하는건 '토핑„
MVC가 최종적으로 사용자에게 보여지는건 Model이 결정.
모델은 쉽게 말하면 데이터야.
전화받는 알바생이 피자 만드는 알바생한테 '포테이토 피자에 치즈크러스터'
이렇게 주문. Controller역할을 하는 피자 만드는 알바생이 피자로 만든다.
전화를 받는 알바생'은 Dispatcher에 해당
사용자로부터 요청이 들어오면 Controller한테 요청한 '고르곤 졸라 피자에
고구마 무스'를 피자 만드는 알바생한테 전달해주는 역할.
물론 디스패쳐라는 사용자의 요청을 전달 뿐만 아니라 Controller가 만들어준
피자를 오토바이 타고 배달까지 해주는 '피자 배달 알바생'역할도 한다.
그러면 최종적으로 받는 결과물은 Controller가 조합을 해준 MV.