[디자인패턴] MVVM 패턴

sunny·2023년 3월 19일
0

디자인 패턴

목록 보기
11/11
post-thumbnail

MVVM 패턴


MVP 패턴이란? - Model, View, ViewModel

MVC에서 C에 해당하는 Controller가 ViewModel로 교체된 패턴

https://user-images.githubusercontent.com/88873302/226187440-672dae97-6807-403b-857d-377a5c9201b5.png

ViewModel

  • View를 표현하기 위해 만들어진 View를 위한 Model
  • MVC 패턴과는 다르게 커맨드데이터 바인딩을 가진다
    • 커맨드 : 여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법
    • 데이터 바인딩 : 화면에 보이는 웹 브라우저의 메모리 데이터를 일치시키는 기법으로, ViewModel을 변경하면 View가 변경된다
  • View와는 Binding을 하여 연결 후 View에게서 액션을 받고 또한 View를 업데이트한다
    • View와 ViewModel 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용할 수 있다

MVVM 패턴의 동작 방식

  1. View에 입력이 들어오면 ViewModel에게 명령한다
  2. ViewModel은 필요한 데이터를 Model에게 요청한다
  3. Model은 ViewModel에게 요청된 데이터를 응답한다
  4. ViewModel은 응답 받은 데이터를 가공해서 저장한다
  5. View는 ViewModel과의 Data Binding으로 인해 자동으로 갱신된다

MVVM의 장단점

장점

  • View와 Model의 독립성
  • 독립성을 유지하기 때문에 효율적인 유닛 테스트 가능
  • View와 ViewModel을 바인딩하기 때문에 코드 양⬇
  • View와 ViewModel의 관계는 N:1

단점

  • 데이터 바인딩이 필수적으로 요구된다
  • 복잡해질수록 Controller처럼 ViewModel이 빠르게 비대해진다
  • 표준화된 틀이 존재하지 않아 사람마다 이해가 다르다

참고 자료

0개의 댓글

관련 채용 정보