MVC란 ?
M: Model (평범한 자바 객체 POJO)
V: View (ex. HTML, JSP, Thymeleaf, mustache 등등 )
C: Controller(스프링 @MVC)
MVC의 역할
모델: 도메인 객체, 또는 DTO로 화면에 전달할 또는 화면에서 전달 받은 데이터를 담고 있는 객체
뷰: 데이터를 보여주는 역할. 다양한 형태로 보여줄 수 있다. (HTML, JSON, XML ..)
컨트롤러: 사용자 입력을 받아 모델 객체를 수정하거나, 모델 객체를 뷰에 전달하는 역할 (입력값 검증 포함)
MVC 패턴의 장점
- 동시 다발적 개발이 가능하다 - 프론트 개발자와 백엔드 개발자가 각자 자기 업무를 동시에 진행할 수 있다.
- 높은 결합도 - 논리적으로 관련있는 기능을 하나의 컨트롤러로 묶거나, 특정 모델과 관련있는 뷰를 그룹화 할 수 있다.
- 낮은 의존도 - 뷰, 모델, 컨트롤러는 각각 독립적이다.
- 개발 용이성 - 책임이 구분되어, 코드 수정이 용이하다.
- 한 모델에 대한 여러 형태의 뷰를 가질 수 있다.
MVC 패턴의 단점
- 코드 네비게이션이 복잡함 (컨트롤러, 뷰, 모델이 분리되어 있어 각각을 찾기가 불편)
- 코드 일관성 유지에 노력이 필요하다.
- 높은 러닝 커브
'Spring' 카테고리의 다른 글
Database Transaction과 데이터 동기화 -1 (0) | 2021.08.01 |
---|---|
스프링 MVC 구성 요소 (0) | 2020.08.02 |
DispatcherServlet이란 (0) | 2020.08.02 |
서블릿 리스너와 서블릿 필터 (0) | 2020.08.01 |
서블릿이란 ? (0) | 2020.07.31 |