MVC 패턴은 디자인 패턴 중 하나이다.
보통 개발자들은 개발을 할 때 협업을 많이 진행하게 되는데 이때 폴더구조나 코드 스타일 또는 코드 작성 패턴 등을 맞혀서 진행을 해야 협업을 하는데 편하게 진행 할 수가 있다.
MVC 패턴 또한 같은 맥락이라고 볼 수 있다.
MVC 패턴은 폴더구조 패턴 중 하나이다.
MVC는 크게 Model, View, Controller 이 3가지의 폴더로 구조가 나뉘게 되고 각각의 폴더는 규칙이 정해져있다.
model은 데이터 베이스와 연동하여 내부 로직을 처리하기 위한 역할을 하는 파일들을 모아놓는다.
쉽게 예를 들면 데이터 베이스의 컬렉션을 만들어주는 스키마 로직을 모아놓는 것이다.
Model은 다음과 같은 규칙을 가지고 있다.
View는 프론트엔드에 해당하는 부분이다.
즉, 사용자의 UI에 해당한다고 보면 된다.
최근 개발 트렌드는 프론트엔드와 백엔드로 나뉘어 개발을 진행을 하게 되는데, 이전에는 프론트엔드와 백엔드에 개념이 없이 한 개발자가 모두 개발을 하였기에 이러한 패턴이 나왔다고 보면 된다.
View는 다음과 같은 규칙을 가지고 있다.
Controller는 Model과 View를 이어주는 로직이다.
쉽게 말해 백엔드 기능을 담당하고 있는 로직들을 모아놓은 곳이다.
View의 어떠한 요청이 있으면 Controller가 해당 요청을 수행하는 Model들을 호출하고 정상요청이 되면 다시 View로 전달을 하는 역할이다.
Controller는 다음과 같은 규칙을 가지고 있다.
프로젝트가 커지면 Controller의 무게가 너무 커지게 된다.
Model과 View는 서로 독립적인 상태이기 때문에 Controller를 통해 소통이 이루어진다.
그렇기에 의존성이 완전히 분리될 수가 없다.
이러한 현상을 Massive-View-Controller 현상이라고 한다.
참고 : MVC 패턴이란?