CS 전공지식/디자인 패턴

디자인 패턴 (MVC, MVP, MVVM 패턴)

eunjineee 2023. 7. 12. 19:00

⭐디자인 패턴이란?

프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록

하나의 '규약' 형태로 만들어 놓은 것을 의미

 

8. MVC 패턴(Model - View - Controller)이란?

애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발

 

장점

각각의 구성 요소에만 집중해서 개발 가능

재사용성과 확장성이 용이

 

단점

애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해짐

 

모델 ( Model )

애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻함

뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신

뷰 ( View  )

모델을 기반으로 사용자가 볼 수 있는 화면

ex ) inputbox, checkbox, textarea 등 사용자 인터페이스 요소

모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 ,화면에 표시하는 정보만 가지고 있어야 함

변경이 일어나면 컨트롤러에 전달

컨트롤러 ( Controller )

하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할

이벤트 등 메인 로직 담당

모델과 뷰의 생명주기 관리

모델이나 뷰의 변경 통지를 받으면 이를 해석하여 각각의 구성 요소에 해당 내용에 대해 알려줌

 

9. MVP 패턴(Model - View - Presenter)이란?

MVC 패턴에서 파생, 컨트롤러가 프레젠터로 교체된 패턴

뷰와 프레젠터가 일대일 관계를 가져 MVC 패턴보다 강한 결합을 가짐

 

10. MVVM 패턴(Model - View - View Model)이란?

컨트롤러가 뷰모델( View Model )로 교체된 패턴

뷰 모델 : 뷰를 더 추상화한 계층

MVC와 다르게 커맨드(여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법)와 데이터 바인딩(화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법, 뷰모델을 변경하면 뷰가 변경됨)을 가지는 것이 특징

 

뷰와 뷰 모델 사이의 양방향 데이터 바인딩을 지원

장점

단위 테스팅이 쉬움

UI를 별도의 코드 수정 없이 재사용할 수 있음