Back-end/Spring

MVC

Ho's log 2021. 5. 16. 17:58

-> 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)

 

미션1 vs 미션2 

 

미션 1 vs 미션 2 코드

DispathcerServlet 이 FrontController 로서 Request를 받아 알맞는 Servlet(Controller)에 Mapping 

 

 

미션1에서는 Controller가 Servlet 과 같은 의미 였지만 미션2 에서 Controller는 Servlet에 역할보다는 Servlet들을 담는 객체가 된다

Annotation과 Reflection를 이용하여 후자가 가능하다

 

Servlet Vs DispatcherServlet를 이용한 Spring MVC

Servlet의 역할을 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