아키텍쳐 MVC, MVVM
MVC
Model View Controller의 약자
모델 - 데이터를 보유.
코딩 가능한 파일, 네트워크 파일, 상수파일, 핵심 데이터모델, 기타 데이터 소스 등 포함.
데이터를 모델링하는 가장 좋은 방법 - struct 사용
(class를 사용하는 경우 상속 같은 무거운 개념 필요하니깐. 그리고 model 의 경우 값만 저장하면 되니깐 struct를 사용)
struct = 값 유형 . 클래스와 달리 구조체를 복사할 때, 두 인스턴스에 대해 고유한 복사본을 유지.
뷰
사용자로부터 입력을 받는 상호작용 레이어
시각적 작업 수행
비즈니스 논리 필요 X
기본 레이블, 버튼, 이미지, 애니메이션, 그래픽 등과 같은 요소 포함
컨트롤러
모델에서 모든 데이터를 가져와 비즈니스 로직 수행, UI 요소에 전달
MVC의 단점
프로젝트 크기가 커질 때, 뷰 컨트롤러가 많은 코드로 인해 복잡해짐
MVVM (Model / View / View-Model)
모델 - 데이터를 보유
뷰 - 사용자에게 데이터를 보여주고, 사용자로부터 데이터를 가져오는 UI 요소
뷰모델 - 모델과 뷰 사이의 중재 계층.
뷰와 모델 사이에서 데이터 관리
장점
-관리 : 컨트롤러에서 복잡한 코드 제거
-테스트 용이성: 코드를 별도의 모듈로 나누기 때문에 테스트 용이
-재사용성: 모델과 뷰를 재사용 가능. 분리되어있으니깐
참고)
https://medium.com/technology-nineleaps/mvvm-architecture-for-ios-6d78794e13d8
'iOS > iOS Swift 개발 일기' 카테고리의 다른 글
Deep Link -target iOS 13 이하 대응 (0) | 2023.04.15 |
---|---|
카카오맵 api 라이브러리 설치 (0) | 2023.04.09 |
ios swift) 테두리 둥글게 - clipsToBounds (0) | 2022.11.19 |
iOS swift addGestureRecognizer 클릭시 UILabel 색상 변화 (0) | 2022.10.19 |
iOS swift UIPickerview - image + text 같이 넣기 (0) | 2022.10.09 |