모델-뷰-컨트롤러(model–view–controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다.
사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
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에서 받아야 한다.