-> MVC에 대한 설명
What is MVC?
Model
- 평벙한 자바 객체 POJO
- 도메인 객체 또는 DTO로 화면에 전달할 또는 화면에서 전달받은 데이터를 담고 있는 객체(@Entity), Database와 강하게 연관
View
- HTML, JSP, THYMELEAF
- 데이터를 보여주는 역할, 다양한 형태: HTML, JSON, XML
Controller
- UserController, ArticleController
- 사용자 입력을 받아 모델 객체의 데이터를 변경하거나 뷰에 전달하는 역할, 예) 입력값 검증, 모델 객체 변경, 변경된 모델 개체 뷰에 전달
MVC 장점
동시다발적개발 : 백엔드 개발자와 프론트엔드 개발자 독립적으로 개발 진행
높은 응집도: 논리적으로 관련있는 기능을 하나의 컨트롤러로 묶거나, 특정 모델과 관련있는 뷰로 그룹화 ex) 하나의 Controller에 다양한 URL Mapping
낮은 의존도: 뷰, 모델, 컨트롤러 각각 독립적이다
개발용이성: 책임이 구분되어 있어 코드 수정 편안
한 모델에 대한 여러 여행의 뷰를 가짐: HTML, JSON, THYMLEAF
MVC 단점
코드네비게이션 복잡함
코드 일관성유지에 노력이 필요함
높은 학습 곡선
장점에 비해 단점이 훨씬 약함
-> 배운것을통해서 미션1, 미션2 재해석( Spring MVC와 연결지어 보기)
두괄식 용어 정리
= DispathcherServlvet + Reflection(Annotation) +Controller 의 변화
Dispatcher Servlet
DispatcherServlet은 Servlet 이다! (DispattcherServlet extends HttpServlet)
DispathcerServlet 이 FrontController 로서 Request를 받아 알맞는 Servlet(Controller)에 Mapping
미션1에서는 Controller가 Servlet 과 같은 의미 였지만 미션2 에서 Controller는 Servlet에 역할보다는 Servlet들을 담는 객체가 된다
Annotation과 Reflection를 이용하여 후자가 가능하다
Servlet Vs DispatcherServlet를 이용한 Spring MVC
Spring에서의 MVC 흐름:
DispatcherServlet이 Controller에게 Mapping해주고
Controller안에 있는 작은 Servlet들이 데이터 조작 후 View를 준비함
View가 Rendering 해주면서 끝남
https://www.youtube.com/watch?v=nMolWzTT-dU&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=90
'Back-end > Spring' 카테고리의 다른 글
톰캣 서버에서 데이터 소스, DB 설정 (0) | 2021.07.13 |
---|---|
JPA와 JDBC (0) | 2021.04.25 |
DTO vs VO (0) | 2021.04.23 |