MVC / MVVM 디자인 패턴

Ginie·2021년 8월 25일
0

프로그래밍 기초

목록 보기
8/11

디자인 패턴
객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 의사소통 수단의 일종.

“기능마다 별도의 클래스를 만들고, 그 기능들로 해야할 일을 한번에 처리해주는 클래스를 만들자.”라고 제안하는 것보다 "Facade 패턴을 써보자."라고 제안하는 쪽이 이해하기 쉽다.

MVC (Model View Controller)

  • Model :서브시스템의 핵심 기능과 데이터를 보관.
  • View : 사용자 정보 표시.
  • Controller : 사용자 입력 처리, Model과 View 사이 중개자

특징

  1. 서브시스템을 3개 부분으로 구조화 하는 패턴.
  2. 각 부분은 별도의 컴포넌트로 분리 되어 있어서 서로 영향을 받지 않고 개발 작업을 수행할 수 있다.
  3. 여러개의 뷰를 만들 수 있으므로 한 개의 모델에 대해 여러개 뷰를 필요로하는 대화형 애플리케이션(사용자 요구 발생시 시스템이 이를 처리하고 반응하는 소프트웨어)에 적합함.

동작 방식

동작 발생 --> 데이터 상태 변경 --> 그에 따른 화면 변경

상태 변경 정보 뷰랑 모델이 서로 주고 받는 양방향 형태.

단점

컨트롤러는 사용자 입력이 들어오면 뷰랑 모델한테 각각 해야할 일을 알려주는데 그러다보니 컨트롤러랑 뷰, 모델이 의존성이 생기게 된다. 그렇다가 점점 복잡하게 연결 되면 나중에는 유지 보수가 어려워진다.

MVVM (Model View ViewModel)

  • Model : 데이터 처리부분
  • View : 화면, UI, 사용자 입력을 받는 부분, ViewModel 관찰하고 있다가 상태변화시 화면 갱신
  • ViewModel : View와 Model 매개체. 데이터를 가공해서 View에 그리기 쉬운 Model로 바꿔줌. 데이터 바인딩 (Model이랑 UI요소의 싱크를 맞춰줌). Model만 신경쓴다. (데이터만 관리)
profile
느리지만 꾸준한 프론트엔드 주니어 개발자 🐢

0개의 댓글