728x90
반응형
개념
- MVC 는 Model, View, Controller의 약자 입니다.
- 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.
Model(모델)
- 애플리케이션의 정보, 데이타를 나타냅니다.
- 데이타베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다.
규칙
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
View(뷰)
- input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다.
- 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당합니다.
- 데이터를 기반으로 사용자들이 볼 수 있는 화면입니다.
규칙
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.
- 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.
Controller(컨트롤러)
- 데이터와 사용자인터페이스 요소들을 잇는 다리역할을 합니다.
- 사용자가 데이터를 클릭하고, 수정하는 것에 대한 "이벤트"들을 처리하는 부분을 뜻합니다.
규칙
- 모델이나 뷰에 대해서 알고 있어야 한다.
- 모델이나 뷰의 변경을 모니터링 해야 한다.
설계원칙
- 각 구성 요소의 역할과 책임을 명확하게 구분
- 구성 요고간의 결합도 최소화
- 코드의 재사용성과 확장성 고려
장점
- 사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 됩니다.
- 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되는 것입니다.
참고자료
MVC (Model-View-Controller) 패턴
728x90
반응형