MVVM

나이든별 / Oldstar·2022년 1월 15일
0

Swift / iOS Keywords

목록 보기
10/13

참조 : https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EB%B7%B0%EB%AA%A8%EB%8D%B8
참조 : MVVM Design Pattern Using Swift @Udemy (https://www.udemy.com/course/mastering-mvvm-for-ios/)

  • 소프트웨어 아키텍처 디자인 패턴의 하나. 모델, 뷰, 뷰모델을 나타낸다.
  • iOS 개발에 있어서 가장 기본적인 형태는 MVC 패턴이며, 이는 곧 모델, 뷰, 컨트롤러를 나타낸다.
    애플에서 공식 배포한 App Development with Swift 교재에서도, MVC 패턴을 기준으로 설명한다.
  • 모델은 자료의 구조 또는 형식으로, 해당 앱 안에서 다루는 데이터의 형식을 나타내며, 별도의 구조체나 클래스로 주로 나타낸다.
    예를 들어 뉴스를 가져오는 앱이라고 하면, Article이라는 구조 하에 뉴스의 제목과 요약 등을 나타낼 수 있다.
  • 뷰는 앱이나 페이지 등, 사용자가 보는 화면을 나타낸다. UI 관련 코드가 해당 지점에 들어갈 수 있다.
  • 컨트롤러는 모델과 뷰에 대해 인식하고 있으며, 변화를 모니터링하고 필요할 때 필요한 처리를 한다.
  • iOS 하에서의 MVC 패턴은, 컨트롤러가 지나치게 비대해진다는 문제가 있다. ViewController가 View와 함께 붙어 있는 구조이기 때문. 일종의 병목 현상이 발생한다. 컨트롤러 역할을 하는 곳에서 모델 관련한 코드에 대해서도 알고 있는 것이다!
  • MVVM 패턴을 사용하면, 뷰는 모델에 관해 일절 신경쓰지 않을 수 있다. 개별 유닛 단위로 테스트하기도 좀 더 용이해진다.
  • 뷰모델은 도메인으로부터 데이터를 받아서, 뷰에서 쓸 수 있는 형태로 가공해 준다.
  • 미리 뷰의 특정 요소와 뷰모델의 특정 요소를 'bind' 해 두었기 때문에, 뷰는 뷰모델에서 제공하는 데이터만을 가지고 정확한 뷰를 표시할 수 있다.
profile
함께 나아가고자 하는 사람

0개의 댓글