MVC란?
Model + View + Controller로 어플리케이션을 구분하는 디자인 패턴.
각 역할을 논리적으로 나눔으로써 유지보수가 쉬워지고 코드의 가독성이 높아진다.
Model
비즈니스 로직을 담당한다. DB와 연동하여 사용자가 입력한 데이터를 입력하거나, 사용자에게 출력할 데이터를 관리한다.
View
사용자 인터페이스를 담당한다. 즉 사용자의 입/출력을 관리한다.
Controller
Model과 View는 서로에 대한 정보가 없기 때문에 이 둘을 Controller가 중재한다. 즉 사용자의 요청을 Model을 통해 처리하고, 해당 결과를 View로 전달한다.
MVC의 규칙
- Model은 Controller와 View에 의존하지 않아야 한다. 즉 Model 내부에 Controller와 View에 관련된 코드가 있으면 안된다.
- View는 Model에만 의존해야 하고, Controller에 의존하면 안된다. 즉 View 내부에 Model의 코드만 있으며 Controller의 코드가 있으면 안된다.
- View가 Model로붜 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야한다. (동적 리소스)
- Controller는 Model과 View에 의존해도 된다. 즉 Controller 내부에는 Model과 View의 코드가 있어도 된다.
- View가 Model로부터 데이터를 받을 때는 Controller를 통해서 받아야 한다.