devGeek 2022. 6. 11. 22:32
반응형

Model + View + ViewModel

  • Model: 데이터 원본의 추상화를 담당한다.
  • View: ViewModel에게 유저의 action을 알려주는 역할을 담당한다. 그리고 ViewModel를 구독하여 UI Data를 관리하고 application logic을 담당하지 않는다.
  • ViewModel: View와 관련된 데이터의 흐름을 관장한다. 추가적으로 ModelViewModel을 연결한다.

MVVM 특징

  • App의 생명주기 상태가 유지된다.
  • UI 요소는 비즈니스 로직과 무관하다.
  • 비즈니스 로직과 db 운영과의 종속성이 없다.
  • 프로젝트를 이해하고 코드를 읽는 것이 쉽다.

MVVM 장점

  • 유지보수: 비즈니스 로직이 View와 독립적으로 돌아가기 때문에 수정보완이 빠르고 다음 버전을 신속하게 출시할 수 있다.
  • 확장성: 새 코드를 교체하거나 추가하기 용이하다.
  • 테스트 가능성: 핵심 로직같은 것들을 유닛 테스트 하기 쉽다.

MVVM 단점

  • 작은 프로젝트(Simple UI)에서는 오버스펙이다.
  • 너무 큰 프로젝트인 경우 ViewModel을 디자인하기 어렵다.
  • 복잡한 data binding을 사용할 경우 Debugging이 어렵다.

참고 블로그

Introduction to Model View View Model(MVVM)

질문과 잘못된 점에 대해 말씀해주시는 건 언제나 환영입니다.
zero5.two4@gmail.com

반응형