MVC패턴은 수많은 디자인 패턴중 하나이다. 디자인 패턴은 어떤 것들을 개발하는 과정에서 발생했던 문제점들을 정리해서 상황에 따라 쓸 수 있게 만들어주는 형태로 만든 것을 의미한다. m은 model, v는 view, c는 controller를 의미한다. 각각의 역할은 model은 데이터의 형식 즉 db에 저장될 형식을 지정해주는 파일들의 집합이다. view는 사용자가 화면으로 보는 파일들 즉 html파일, controller는 사용자의 요청에 대한 응답을 해주는 파일들이 주로 있다.
그래서 사용자가 컨트롤러를 조작하면 모델을 통해 데이터를 가져오고, 그 데이터들을 시각적인 역할을 해주는 뷰를 제어해 사용자가 볼 수 있게 됩니다. 밑에가 설명에 대한 그림이다.
이 패턴의 특징으로는 컨트롤러와 뷰의 관계가 1:1이 아닌 1:n 관계이다. 그래서 뷰가 많아질수록 컨트롤러의 부담이 커져 병목현상이 발생할 수 있다. 이를 보완하기 위해 나온 패턴들이 mvp, mvvm, flux가 있다.
[그림 출처:https://jooncco.com/design%20pattern/mvc/]