티스토리 뷰

반응형

 

 

 


MVVM Design Pattern
MVVM 디자인 패턴

Model-View-ViewModel 의 구성을 가진 디자인 패턴, MVVM은 앞서 Model, View, ViewModel 세개의 특정 그룹으로 객체들을 나누는 디자인패턴입니다. MVC(Model-View-Controller) 패턴에 비하면 Controller -> ViewModel이 되었네요.

MVVM의 구성 그룹, 세가지 그룹은 모델(Model), 뷰(View), 뷰모델(ViewModel)로 각각의 역할은 아래와 같습니다.

Diagram of MVVM Design pattern

- 모델(Model) : 앱 데이터를 갖습니다. 보통 구조체나 단순한 클래스로 구성되어 있습니다. 
- 뷰(View) : 스크린 상에 시각적으로 보이는 요소와 컨트롤들을 표출합니다. 전형적으로 UIView의 서브클래스 들로 구성이 됩니다. 
- 뷰모델(ViewModel) : 모델 정보를 뷰 상에 표출될 수 있는 값으로 변환시킵니다. 보통 이들은 클래스로 구성되어 있으며 그렇기에 그들은 주변에 참조되어 질 수 있습니다.

 

혹시 위의 Model-View-ViewModel 역할 소개를 듣고 무언가 친숙함이 있으셨나요?

사실 해당 모델은 Apple에서 기본적으로 채택해 사용하는 패턴, MVC패턴과 매우 유사합니다. 주목할 것은, 이러한 MVVM 패턴에서도 MVC패턴때와 같이 ViewController가 사용되어집니다. 다만, MVC에 비해  MVVM 디자인패턴 에서의 뷰컨트롤러(ViewController)의 역할은 축소 되어 있습니다.


* Cocoa에서 사용되는 기본 디자인 패턴, MVC에 대한 상식

MVC 패턴은 Apple에서 기본적으로 지원되는 디자인패턴으로 다른 패턴에 비해 비교적 쉽게 구현할 수 있는 장점이 있지만 Massive ViewController의 단점 또한 갖고 있습니다.

Apple 공식 문서에서는 MVC 디자인 패턴에 대해서 위와 같이 언급하고 있습니다. 

MVC는 Cocoa 어플리케이션의 좋은 설계의 중심에 있습니다. MVC패턴을 적용하면 얻는 장점은 매우 많습니다. 해당 어플리케이션의 많은 객체들은 재사용 가능하도록 하는 경향이있습니다. 또한 그들의 인터페이스또한 더 잘 정의되려는 경향이 있습니다. MVC 설계 하의 어플리케이션은 타 어플리케이션에 비해 매우 확장성이 높습니다.. 무엇보다도, 많은 Cocoa 기술들, 설계들은 MVC에 기반을 하고 있고, 당신의 커스텀 객체들이 MVC 규칙 하에서 작동되길 요구합니다. 

 

 


다음 포스팅에서는 MVVM패턴에 대해서 이해하기 위해 뷰 모델(ViewModel)을 프로젝트 내에 구성하고, 적용하는 방법을 배워보도록 합니다.

이후에는 뷰모델이 포함된 MVVM 디자인패턴을 구성하면서 뷰모델이 어떤 역할을 하는지에 대해 알아보기에 앞서 먼저 MVC 디자인 패턴을 구현한 뒤, MVC 패턴을 MVVM 패턴으로 리펙토링(Refactoring) 해보는 간단한 예제를 다뤄보도록 하겠습니다. 

 

 

MVVM 디자인패턴 관련 참고 링크 ▼

 

Design Patterns by Tutorials: MVVM

Learn how and when to use the architecture-slash-design pattern of MVVM in this free chapter from our new book, Design Patterns by Tutorials!

www.raywenderlich.com

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함