728x90
MVC패턴은 디자인 패턴 중 하나이다. 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하며 특정한 "규약"을 통해 쉽게 유지보수하고 또 다른 이들과 공유할 때 쉽게 하기 위함
MVC는 Model, View, Controller의 약자로 크게 세 가지 역할로 구분한 패턴이다.
Model
- 사용자가 원하는 모든 데이터를 가지고 있어야 하며, 어떤 데이터를 보여 줄지 정의
- 데이터 변경이 일어났을 때 뷰를 참조하는 내부 속성 값(모델에서 직접 수정)을 가지면 안 된다.
- 데이터 변경이 일어났을 때 이벤트를 발생시켜야 하며, 이를 수신할 수 있는 처리 방법을 구현
- 재사용 가능하게 구현
- CRUD 작업 담당
View
- 데이터를 보여주는 방식을 정의
- 모델이 가지고 있는 데이터를 따로 저장해서는 안된다.
- 데이터를 받으면 화면에 표시해주는 역할 (자신 외의 다른 요소를 참조 X).
- 모델 변경 이벤트에 대한 처리 방법을 구현
Controller
- 모델과 뷰는 서로의 존재를 모른다. 이를 중재하기 위해 모델과 뷰에 대해서 알고 있어야 한다.
- 데이터를 보여주는 방식을 정의
- 모델과 뷰의 모니터링하며 변경 통지를 받으면 이를 해석해 각각의 구성 요소에 통지한다.
- 애플리케이션의 메인 로직 담당 사용자가 view를 보며 controller를 이용 → model 조작 → model이 view 갱신 (반복)
장점
- 유연하며 협업과 확장하기 쉽다.
- 유지보수 비용이 적다.
단점
- 클래스들이 많이 필요하기 때문에 복잡하다.
- 숙련되지 않으면 설계 시간이 오래 걸린다.
- Model, View의 완벽 분리 어렵다.
728x90
'CS > 디자인 패턴' 카테고리의 다른 글
팩토리 패턴(factory pattern) (0) | 2023.01.13 |
---|---|
싱글톤 패턴 (Singleton) (0) | 2023.01.12 |
디자인 패턴 (0) | 2023.01.11 |
댓글