07. Spring MVC
2021. 10. 3. 21:54ㆍSpring/Computer Science
728x90
- Spring 프레임워크에서 제공하는 웹 모듈이다.
- MVC 는 Model-View-Controller 의 약자로, 기본 시스템 모듈을 MVC 로 나누어 구현되어있다.
- Model 은 '데이터' 디자인을 담당한다.
- ex. 상품 목록, 주문 내역 등
- View 는 '실제로 렌더링되어 보이는 페이지' 를 담당한다.
- ex. .JSP, .html 파일들이 여기에 해당된다.
- Controller 는 사용자의 요청을 받고, 응답을 주는 로직을 담당한다.
- ex. GET 등의 uri 매핑이 여기에 해당된다.
- Model 은 '데이터' 디자인을 담당한다.
- Spring MVC 모듈을 사용하여, 백엔드 프로그래밍의 기본 프레임워크를 잡는다.
- Web 서버에 특화되어 만들어진 모듈이라, 개발자가 해야할 영역을 더 적게 만들어준다.
- 즉 기존에 Spring 보다 더 깔끔하고 간편하게 개발 가능.
기본 동작의 흐름
- Dispatcher Servlet
- 컨트롤러 중에서도, 맨 앞단에서 유저의 유청을 받는 컨트롤러를 프론트 컨트롤러라고 한다.
- DispatcherServlet 객체가 이 역할을 한다.
- 모든 요청을 한곳에서 받아서 필요한 처리들을 한 뒤, Dispatcher가 받은 요청은 HandlerMapping으로 넘어간다.
- 해당 Handler의 실행 결과를 Http Response형태로 만드는 역할을 한다.
- Handler Mapping
- 해당 요청을 어떤 핸들러가 처리해야하는지를 매핑한다.
- Controller
- 해당 요청을 처리하는 로직을 담고있다.
- 보통 요청의 종류 혹은 로직의 분류에 따라 내부적으로 Service 단위로 나누어 모듈화 한다.
- 각 서비스에서는 DB 접근할 수 있는 Repository 객체를 이용하여 데이터에 접근할 수 있다.
- View Resolver
- 컨트롤러는 서비스에서의 로직 처리 후, 결과를 뷰 리졸버를 거쳐 뷰 파일을 렌더링하여 내보낸다.
- View Name(the logical names)에 prefix, suffix를 적용하여 View Object(the physical view files)를 반환한다.
- 이 후에 해당 View에서 이 Model data를 이용하여 적절한 페이지를 만들어 사용자에게 보여준다.
- 컨트롤러는 서비스에서의 로직 처리 후, 결과를 뷰 리졸버를 거쳐 뷰 파일을 렌더링하여 내보낸다.
참고
'Spring > Computer Science' 카테고리의 다른 글
06. 의존관계 자동 주입 (0) | 2021.09.27 |
---|---|
05. 컴포넌트 스캔 (0) | 2021.09.27 |
04. Bean (0) | 2021.09.26 |
03. 객체지향 3가지 원칙의 적용과 IOC (0) | 2021.09.26 |
02. 의존성 주입, DI(Dependency Injection (0) | 2021.09.26 |