본문 바로가기
CS/CS

[CS] MVVM 간단하게 메모

by 리드맥 2022. 3. 2.

MVVM(Model - View - ViewModel)

 

Model: 데이터구조정의 해서 ViewModel에게 결과를 알려줌, View와 이어지지않음

private var todoListVM: TodoListViewModel!

//todoListVM : ViewModel, todoList: Model

//				todoList에 데이터 들어가있는 상태
self.todoListVM = TodoListViewModel(todoList: todoList)

 

View: ViewController, cell 에 코드작성. 사용자와 상호작용이 일어나면 ViewModel에 알려주고, ViewModel이 요청한 데이터를 보여줌(화면에 전달)

ViewModel: MVC에서 ViewController 역할. 상호작용에대한 역할에 걸맞는 이벤트를 처리, Model의 Read Update Delete 담당

 

음 그냥 ViewController에서 extension부분이나 데이터 처리부분을 가져가는 건가

 

추가 -------------

 

MVVM에서 ViewModel 은 데이터 업데이트 및 뷰요소 업데이트 하는데 사용

MVVM 장점 :

             1. View, Model, ViewModel 독립적 테스트 가능

             2. Controller에서 하던 데이터 가공을 ViewModel에서 해서 Controller 의 의존성을 내리고, Controller 의 코드가 길어지는 것을 막음

 

추가 -------------

 

MVC 에서 MVVM 으로 코드 변경을 해보았는데 ViewController을 300 줄에서 250줄 까지 줄일 수 있었다.

많이 줄어든건가 잘모르겠다. 더큰 프로젝트를 하면 더 좋은 효과가 있을 것 같다.

'CS > CS' 카테고리의 다른 글

[CS] Linked List, 배열 차이점  (0) 2022.03.31
[CS] RESTful API  (0) 2022.03.07
[CS] Dependency Injection  (0) 2022.01.13
[CS] 프로토콜, 인터페이스 차이  (0) 2022.01.12
[CS] 함수형 프로그래밍  (0) 2022.01.12

댓글