MVC를 왜 사용하는가?
- 유지보수의 이점 (모듈화)
- 재사용성
- 커뮤니케이션에 용이
=> 객체 지향 관점에서 좋은 설계가 된다. (응집도와 결합도, 단일책임원칙)
MVC란?
- Model : 데이터와 관련된 일을 하는 곳. 값과 값에 대한 기능(비즈니스 로직)을 가진 객체
- View: 사용자에게 보여지는 것을 담당. 사용자한테 보여지는 부분(데이터를 보여주는 방식)
- Controller: 모델과 뷰의 중개자. 명령을 모델과 뷰에 전달하고, 사용자 입력에 따라 모델과 뷰를 업데이트하는 로직을 포함
MVC를 지키기 위한 원칙
- Model은 View, Contorller에 의존하지 않아야한다.
- View는 Model에만 의존해야하고 Controller에 의존하지 않아야한다.
(View는 Model의 데이터에 의존적이지만, Controller에 의존할 일이 없다.)
- View는 사용자마다 보여주는 것이 다른 부분에만 Model의 데이터를 받는다.
(모두에게 같은 것을 보여준다면, Model의 데이터가 필요하지 않다.)
- Controller는 Model, View에 의존할 수 있다.
- View는 Model로부터 데이터를 받을때는 반드시 Controller에서 받아야한다.
프로젝트가 거대해져 MVC를 지키기 힘들어지면?
- Service를 사용: 비즈니스로직을 수행하는 객체, 하나의 트랜잭션을 가지며 컨트롤러가 이를 통해 비즈니스 로직을 수행
- Repository를 사용 (DAO와 유사하지만 다르다.)
참조)
'Backend > OOP' 카테고리의 다른 글
[OOP] 객체 지향이란? 객체지향의 4가지 특성 (0) | 2021.08.15 |
---|---|
[10분 테코톡] DTO vs VO with 인비, 라흐, 지노&비모 (0) | 2021.07.15 |
[UML] PlantUML로 UML Diagram 쉽게 활용하기 with IntelliJ (0) | 2021.07.14 |