MVC
는 Model, View, Controller의 약자로 하나의 프로젝트를 세가지 역할로 구분한 패턴입니다.
위의 그림과 같이 유저가 controller을 조정하면 contoroller는 model을 통해 데이터를 가져오고 그 정보를 통해 프론트 엔드를 담당하는 view를 조작하여 유저에게 전달됩니다.
프로젝트의 정보, 데이터를 나타냅니다. 데이터베이스의 기본 구조를 뜻하기도 합니다.
모델은 다음과 같은 규칙을 가지고 있습니다.
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
브라우저에서 볼 수있는 html, css와 같은 요소를 말합니다.
뷰는 다음과 같은 규칙을 가지고 있습니다.
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.
- 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.
데이터와 사용자인터페이스를 잇는 다리역할을 합니다.
즉, 사용자의 이벤트에 반응하여 데이터를 수정하고 얻는 부분을 의미합니다.
컨트롤러 또한 다음과 같은 규칙을 가지고 있습니다.
- 모델이나 뷰에 대해서 알고 있어야 한다.
- 모델이나 뷰의 변경을 모니터링 해야 한다.
프로젝트를 3가지의 역할로 나누어 각각의 역할의 담당을 따로 둘 수 있는 장점이 있습니다. 즉, 각각 맡은 바에만 집중을 할 수 있게 도비니다.
서로 각자의 역할에 집중하여 개발을 하게 된다면 프로젝트의 확장성, 유연성, 그리고 무엇보다 유지보수성이 증가하게 되는 장점을 얻을 수 있습니다.