Swift/SwiftUI기초

MVC와 MVVM 패턴이란?

Teol 2023. 12. 30. 17:25

프로젝트를 수행하기 위해 공부해야할 것이있다.

그 중 한개가 어떤 패턴을 숙지하고 프로젝트에 적용할것이냐이다.

이번 트랙어스앱 프로젝트에서는 이 두가지 패턴을 적용하기로 하였다.

 

MVC는 Model, View, Controller로 구성되어있다.

간단히 말하면 사람들 눈에 직접보이는 뷰위 모델이 있고 컨트롤러가 두 뷰의 데이터신호를 관리한다.

 

- Model은 소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 의미한다. 이는 Controller에게 받은 데이터를 조작(가공)하는 역할을 수행한다고 볼 수 있다

 

- Controller(컨트롤러) Controller는 Model과 View 사이에서 데이터 흐름을 제어한다. 사용자가 접근한 URL에 따라 요청을 파악하고 URL에 적절한 Method를 호출하여 Service에서 비즈니스 로직을 처리한다. 이 후 결과를 Model에 저장하여 View에게 전달하는 역할을 수행한다

 

여기도 MVC, 저기도 MVC! MVC 패턴이 뭐야?

어딜가든 MVC에 대해서 많이 듣고 접하게 되는데 과연 MVC 패턴은 무엇이고 왜 등장했는지, 더 나아가 MVC의 필요성과 한계점은 무엇인지 학습하고 고민한 내용을 기록하였습니다.

velog.io

자세한 MVC패턴은 이 블로그에 잘 정리돼어있었다.

 

그럼MVVM이란 무엇일까?

MVC에서 C가 ViewModel로 바뀐것이다.

뷰 모델은 뷰가 데이터 바인딩되는 속성또는 명령을 구현하며 뷰의 상태변경을 알리는 역할을 한다.

 

Model-View-ViewModel 패턴 - Xamarin

이 장에서는 eShopOnContainers 모바일 앱이 MVVM 패턴을 사용하여 앱의 비즈니스 및 프레젠테이션 논리를 사용자 인터페이스와 완전히 분리하는 방법을 설명합니다.

learn.microsoft.com

이 블로그에 만드는 방법이 자세히 나와있으니 참고하면 된다.

이걸 보고 프로젝트에 계속 적용해봐야한다.

------------------------------------------------------------------------------------------------

-MVVM

 

View: 화면에 표시되는 구조, 레이아웃 및 모양을 정의

Model: 데이터를 가져오거나 저장하는 역할

ViewModel: 중재자 역할을 하면서 뷰가 데이터 바인딩될 수 있는 속성 및 명령을 구현

 

-MVVM 동작과정

 

  1. 사용자의 Action들은 View를 통해 들어옵니다.
  2. View에 Action이 들어오면 ViewModel에 Action을 전달합니다.
  3. ViewModel은 Model에게 데이터를 요청합니다.
  4. Model은 ViewModel에게 요청받은 데이터를 응답합니다.
  5. ViewModel은 응답 받은 데이터를 가공하여 저장합니다.
  6. View는 Data Binding을 이용해 UI를 갱신시킵니다.

-MVVM 특징

 

View : ViewModel = 1 : n

관계로 되어있고 데이터 바인딩을 이용하면 의존성을 줄일 수 있는 장점이 있다.

 

-써야하는이유?

 

의존성이 적다(뷰와 뷰모델 사이를 데이터 바인딩하기 때문)

코드재사용가능(중복되는 부분을 모듈화해서 여러 뷰에 가져다 쓸수 있음)

 

 

'Swift > SwiftUI기초' 카테고리의 다른 글

SwiftUi - annotation 과 Property Wrapper  (0) 2023.12.29
SwiftUI - 버튼, UI, Image, TextFiled 구현  (0) 2023.10.16
SwiftUI - 초 계산기 앱  (0) 2023.10.11