728x90
디자인 패턴
개발 과정에서 발생하는 문제를 해결하기 위해 사용되는 패턴.
같은 문제에는 같은 방식의 패턴을 사용하면 된다.
문제에 맞는 디자인 패턴을 적용하는 게 중요하다.
MVVM 패턴
Model(비즈니스 로직), View(UI), View Model(프레젠테이션 로직)으로 로직을 분리하는 패턴이다.
이렇게 로직을 분리하면 테스트, 유지보수, 재사용이 쉬워진다.
MVVM 패턴의 구성요소
Command 패턴과 Data Binding을 통해 View와 View Model 사이의 의존성을 없앴다.
ViewModel과 Model은 1:N 관계를 형성한다.
Model은 ViewModel과 View를 모르고, ViewModel은 View를 모른다.
View
UI에 관련된 것을 다룬다.
사용자가 보는 구조, 레이아웃, 형태를 정의한다.
UI로직을 포함하지만 비즈니스 로직을 포함하면 안 된다.
ViewModel에 있는 필드가 변경되는지 관찰하고 있다.(Observer pattern)
ViewModel
Model의 데이터를 가공해서 뷰에 제공한다.
View에서 사용할 메서드와 필드를 ViewModel에서 구현한다.
Model
데이터와 데이터에 관련된 행위를 합쳐서 Model이라 한다.
앱에서 사용할 비즈니스 로직을 다룬다.
MVVM 패턴의 장단점
장점
- 개발 기간 동안 개발자와 디자이너가 병렬적으로 작업할 수 있다.
UI 디자인이 나오지 않았더라도 미리 정의된 모델과 뷰 모델을 먼저 개발할 수 있기 때문. - 테스트하기 쉽다.
- 재사용이 용이해진다.
단점
- 복잡한 구조를 위해서 만들어진 패턴이라 거대한 앱에서는 유용할지 몰라도
소형 앱에서 사용하면 오버헤드가 커진다. - 데이터 바인딩이 메모리 소모를 많이 한다.
유의할 점
ViewModel이 비대해지지 않게 주의해야 한다.
View → ViewModel → Model 이 참조 순서를 지켜야 한다.
참고 링크
반응형
'개발공부 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 전략패턴 (Stratege Pattern) (0) | 2023.02.01 |
---|---|
[디자인 패턴] 상태 패턴 (State Pattern) (0) | 2023.01.31 |
옵저버 패턴(Observer Pattern) / 관찰자 디자인 패턴 (0) | 2022.01.10 |
팩토리 메서드 패턴 (Factory Method Pattern) 설명과 예제 (0) | 2022.01.04 |
[디자인 패턴] 객체지향의 4대 특징 (0) | 2021.10.31 |