- 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는
소프트웨어 디자인 패턴
이다.
- 하나의 어플리케이션 또는 프로젝트를 구현할 때,
세 개의 영역
으로 분할하고 각 구성 요소에게 고유한 역할을 부여하는 소프트웨어 공학에서 사용되는 개발 방식이다.
비즈니스 로직
과 UI 영역
이 분리
되어 독립적인 역할 수행 가능
1) User가 Controller
를 조작한다.
2) Controller는 Model
을 Manipulate(조종)하여 데이터를 갖고온다. (알맞은 비즈니스 로직을 수행)
3) 가져온 데이터를 바탕으로 View
를 갱신한다.
4) 갱신된 View를 사용자가 볼 수 있게 된다.
Model
데이터
와 비즈니스 로직
을 관리한다. (Application 정보, data, DB와 상호작용)
- 프로그램이 목표하는 작업을 원활하게 수행하기 위해 필요한 물리적 개체
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- view 또는 controller에 대해 어떤 정보도 알고 있으면 안된다.
- 변경이 일어나면 이에 대한 처리방법을 구현해야 한다.
- 레이아웃과 사용자가 보는 화면을 처리한다. (user interface)
- 모델이 가지고 있는 정보를 따로 저장하면 안된다. (모델에게 전달받은 데이터를 별도로 저장하지 않아야 한다.)
- 다른 구성요소를 알면 안된다.
- 변경이 일어나면 이에 대한 처리방법을 구현해야 한다.
Controller
- model(data)과 view(user interface)를 연결 시켜준다. (단순 bridge 역할)
- 프로그램 작동 순서와 방식을 처리한다.
- 사용자가 데이터를 수정하거나, 데이터를 클릭하는 등의 Event가 발생하면, 이 Event를 처리하는 역할
- model 또는 view에 대해 알고 있어야 한다.
- model 또는 view의 변경을 모니터링 해야 한다.
참고문헌
https://developer.mozilla.org/ko/docs/Glossary/MVC