MVC패턴이란
- MVC패턴은 디자인 패턴 중 하나이다. 어플리케이션을 3가지 역할로 구분한 개방 방법론이다
- 3가지는 Model, View, Controller로 나누어져 있다.
- 간단하게 말해 사용자가 Controller를 조작하면 Model을 통해서 데이터를 가져오고, 데이터를 바탕으로 시각적인 표현을 View가 사용자에게 보인다.

Model
- 정보 데이터를 가지고 있다. 내부 상태에 대한 정보, 모델을 표현하는 이름 속성 등을 가질 수 있다.
- 모델에 상태 변화가 있을 대, 컨트롤러와 뷰가 이를 통보한다.
Model의 규칙
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야 한다. : 정보 변경이 된다면, 이벤트를 발생시켜 누군가에게 전달해야하며, 수신할 수 있는 처리 방법을 구현해야한다. 모델은 재사용이 가능해야 한다.
View
- input 텍스트, 체크항목 등 사용자 인터페이스 요소를 나타낸다. 사용자의 데이터 및 객체의 입력, 그리고 원하는 데이터를 보여주는 출력을 담당한다.
View의 규칙
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다. : model이 준 정보를 view내부에 저장해서는 안된다. 단순히 표기만 해야한다.
- 모델이나 컨트롤러에 대해서 어떤 정보도 알지 말아야한다.
- 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야 한다.
Controller
사용자의 요청에 따라 데이터를 Model에게 요청하고, 데이터를 view에게 반영해서 사용자에게 알려준다. model과 view를 잇는 다리 역할이다.
Controller의 규칙
- 모델이나 뷰에 대해서 알고 있어야한다. : 뷰와 모델은 서로 모르기 때문에 그 중간의 역할로 컨트롤러는 둘다 알 고 있어야한다.
- 모델이나 뷰의 변경을 모니터링 한다. : 변경 통지를 받으면 각각의 구성요소에게 통지해야한다.
MVC 패턴을 사용해야하는 이유
- 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행할 수 있다.
- Model과 View가 다른 컴포넌트들과 종속되자 않아, 확장성, 유연성에 굉장히 유리하다.
- 중복코딩의 문제점을 해결할 수 있다.
출처 및 참고
https://ss-o.tistory.com/160