MVC pattern
본문 바로가기
CS/디자인 패턴

MVC pattern

by IYK2h 2021. 7. 2.
728x90

MVC패턴은 디자인 패턴 중 하나이다. 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하며 특정한 "규약"을 통해 쉽게 유지보수하고 또 다른 이들과 공유할 때 쉽게 하기 위함

 

MVC는 Model, View, Controller의 약자로 크게 세 가지 역할로 구분한 패턴이다.

Reference : XESCHOOL

Model

  • 사용자가 원하는 모든 데이터를 가지고 있어야 하며, 어떤 데이터를 보여 줄지 정의
  • 데이터 변경이 일어났을 때 뷰를 참조하는 내부 속성 값(모델에서 직접 수정)을 가지면 안 된다.
  • 데이터 변경이 일어났을 때 이벤트를 발생시켜야 하며, 이를 수신할 수 있는 처리 방법을 구현
  • 재사용 가능하게 구현
  • CRUD 작업 담당

View

  • 데이터를 보여주는 방식을 정의
  • 모델이 가지고 있는 데이터를 따로 저장해서는 안된다.
  • 데이터를 받으면 화면에 표시해주는 역할 (자신 외의 다른 요소를 참조 X).
  • 모델 변경 이벤트에 대한 처리 방법을 구현

Controller

  • 모델과 뷰는 서로의 존재를 모른다. 이를 중재하기 위해 모델과 뷰에 대해서 알고 있어야 한다.
  • 데이터를 보여주는 방식을 정의
  • 모델과 뷰의 모니터링하며 변경 통지를 받으면 이를 해석해 각각의 구성 요소에 통지한다.
  • 애플리케이션의 메인 로직 담당
    Reference : Model–view–controller(Wikipedia)
    사용자가 view를 보며 controller를 이용 → model 조작 → model이 view 갱신 (반복)

장점

  • 유연하며 협업과 확장하기 쉽다.
  • 유지보수 비용이 적다.

단점

  • 클래스들이 많이 필요하기 때문에 복잡하다.
  • 숙련되지 않으면 설계 시간이 오래 걸린다.
  • Model, View의 완벽 분리 어렵다.
728x90

'CS > 디자인 패턴' 카테고리의 다른 글

팩토리 패턴(factory pattern)  (0) 2023.01.13
싱글톤 패턴 (Singleton)  (0) 2023.01.12
디자인 패턴  (0) 2023.01.11

댓글