MVC 는 Model, View, Controller의 약자이다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 이다.
디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 규약을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.
대표적으로 라이브러리나 프레임워크가 디자인패턴의 예시라고 볼 수 있다.
MVC는 Model, View, Controller의 약자이다. 하나의 어플리케이션, 프로젝트를 구성할 때 구성 요소를 세가지의 역할로 구분한 패턴이다.
위의 사진을 보면 컨트롤러는 모델과 뷰에 영향을 미칠 수 있지만 모델과 뷰는 서로 독립되어 있어 서로 영향을 줄 수 없다.
모델은 다음과 같은 규칙을 가지고 있다.
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
뷰는 다음과 같은 규칙을 가지고 있다.
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 모델과 같이 다른 구성요소들을 몰라야 된다.
- 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.
컨트롤러는 다음고 같은 규칙을 가지고 있다.
- 모델이나 뷰에 대해서 알고 있어야 한다.
- 모델이나 뷰의 변경을 모니터링 해야 한다.