본문 바로가기
컴퓨터과학/디자인패턴

[디자인패턴] MVC 패턴

by 윤호 2021. 12. 12.

목적

업무 로직(Business Logic) 및 데이터(Model)와 보이는 부분(View)을 분리

요소

문제 : 데이터와 해당 데이터를 보여주는 부분(뷰)의 코드가 섞여있음

해결 : 데이터를 분리하고 이들을 연동시키는 컨트롤러를 추가

결과 : loose coupling, 재사용성

설계

  • 모델 : 데이터를 관리하는 부분
  • 뷰 : 화면에 보이는 부분
  • 컨트롤러 : 사용자의 입력을 처리하고, 모델과 뷰 사이에서 상호작용을 할 수 있도록 지원

MVC 패턴의 장단점

장점

  • 클래스간 정보 공유를 최소화시킴 - 모델과 뷰가 서로에 대해 잘 몰라도 됨
  • 같은 모델에서 여러 개의 뷰를 지원할 수 있음

단점

  • 뷰가 업데이트 되어야 함을 알려줘야함 - 모델이 뷰에게 데이터를 직접 전달하는 것 보다 비효율적임
  • 컨트롤러의 역할이 너무 커질 수 있음

reference : 상명대학교 조용주 교수님

댓글