티스토리 뷰

반응형

 

 

 


When should you use it?
언제 MVVM(Model-View-ViewModel)을 사용해야 할까?

만약 모델을 뷰모델을 통해 뷰에 맞는 값으로 변환해서 뷰를 표현하고 싶다면, MVVM 디자인패턴을 사용할 수 있습니다.

예를 들자면, 날짜 표기에 사용되는 Date구조체를 날짜 포맷화 된 String 문자열로 변환하거나 이와 같은 많은 경우의 변환이 필요할 경우, MVVM의 VM, 뷰모델(ViewModel)이 사용되어질 수 있습니다. 

 

 


Massive ViewController
비대한 뷰컨트롤러

지금 이야기하고 있는 MVVM(Model-View-ViewModel) 디자인 패턴은 MVC의 단점을 보완하고 있는 디자인패턴입니다. 

만약 뷰모델(ViewModel)이 없다면, 모델에서 뷰로 변환하는 과정의 코드를 뷰컨트롤러(ViewController)에서 전담하게 됩니다. 하지만, 뷰컨트롤러는 이미 이 외의 다른 작업도 맡아 수행하고 있지요. 예를들면 viewDidLoad, viewWillAppear, viewDidAppear 등의 생애주기 이벤트 관리, IBAction 등의 콜백처리 등 다른 작업들 또한 수행하게 됩니다. 

이렇듯, 뷰컨트롤러가 모델의 뷰 적용, 생애주기관리, 콜백처리 등 다양한 역할을 수행하게 되면서 비대한 뷰컨트롤러를 초래할 수 있게 되는데 이를 흔히, "비대한 뷰컨트롤러(Massive ViewController)" 라고 부릅니다.

 

 

 


How to Solve Massive ViewController
비대한 뷰컨트롤러 문제를 해결하는 방법

그렇다면, 어떻게 이러한 MVC(Model-View-Controller)의 Massive ViewController와 같은 문제점을 해소할 수 있을까요? 그 방법은 짐작이 가실겁니다. 🤗

바로 MVC 패턴 대신 다른 디자인패턴을 사용하는 것이지요. 이때 MVVM(Model-View-ViewModel)패턴의 사용은 모델을 뷰로 변환해야하는 작업(Model-to-View)을 요구하는 경우, Massive ViewController를 해결하는 좋은 방법이 될 수 있습니다. 또한 MVVM은 MVC에 비해 Testability(테스트 가능성)의 관점에서도 장점을 갖고 있는 패턴입니다. 

 

 


지금까지 애플에서 기본적으로 제공하는 디자인패턴인 MVC 대신 MVVM 디자인 패턴을 사용하는 이유에 대해서 알아봤습니다. 이처럼 각각의 디자인패턴은 저마다의 장단점을 갖고 있으며, 프로젝트의 성향이나 규모에따라 적절한 패턴을 사용하기 위해서는 다양한 디자인패턴에 대한 이해와 응용력이 있어야할 것 같습니다. 🤯

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함