프로젝트를 수행하기 위해 공부해야할 것이있다.
그 중 한개가 어떤 패턴을 숙지하고 프로젝트에 적용할것이냐이다.
이번 트랙어스앱 프로젝트에서는 이 두가지 패턴을 적용하기로 하였다.
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 동작과정
- 사용자의 Action들은 View를 통해 들어옵니다.
- View에 Action이 들어오면 ViewModel에 Action을 전달합니다.
- ViewModel은 Model에게 데이터를 요청합니다.
- Model은 ViewModel에게 요청받은 데이터를 응답합니다.
- ViewModel은 응답 받은 데이터를 가공하여 저장합니다.
- 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 |