์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- tableView
- Swfit
- ๋ฐฑ์ค
- TCA
- swift
- CollectionView
- visionOS
- BFS
- XCTest
- Kuring
- arkit
- RxSwift
- Lv2
- UIKit
- ํจ์คํธ์บ ํผ์ค
- raywenderlich
- reactorkit
- Flutter
- realm
- MVVM
- combine
- designpattern
- ํ๋ก๊ทธ๋๋จธ์ค
- rxcocoa
- SnapKit
- Xcode
- ios
- BOJ
- node.js
- SwiftUI
- Today
- Total
lgvv98
ch10 MVVM ํจํด ๋ณธ๋ฌธ
๋์์ธ ํจํด ๊ธฐ์ด #1
ํด๋ฆฐ ์ํคํ ์ณ ๐
๋์์ธ ํจํด ๐ ์ ๋ํ ๊ณ ๋ฏผ!!
Goal
1. ๊ธฐ์ ๋ถ์ฑ ์ต์ํ ๐ธ
2. ์ฌ์ฌ์ฉ ๋ฐ ์ง์ ๊ฐ๋ฅ โป๏ธ
๋์์ธ ํจํด ๊ธฐ์ด #2
MVC(Model - View - Controller)
Model : ๋ฐ์ดํฐ(Struct)
View : UI์์(UIView)
Controller : ์ค๊ณ์ (UIViewController)
์ปจํธ๋กค๋ฌ๋ ์ค๊ณ์๋ก์จ View์ Model๊ณผ ์์ฌ์ํต์ ํ๊ฒ ๋๋๋ฐ, Model์ด ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ฉด Controller์๊ฒ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์๋ค๊ณ Notifyํด์ค ๋๋ ์๊ณ , ๋ฐ๋๋ก Controller๊ฐ Model์ ์ง์ ์ ๊ทผํด์ ๋ ๋ฐ์ดํฐ ๋ฐ๋์ด์ผ ํ ํ์๊ฐ ์๊ตฌ๋! ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ฐ๊พธ๊ธฐ๋ ํ๋ค.
View์ ๊ฒฝ์ฐ์๋ ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ทฐ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ณด์ฌ์ค์ผ๊ฒ ๋ค๊ณ ์์ฌ์ํต ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ , ๋ฐ๋๋ก ๋ทฐ๋ ๋ทฐ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฐ์ ์ธํฐ๋์ ์ ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํ๊ธฐ๋ ํจ.
โ๏ธ ๋ฌธ์ -> ์ฝ๋๊ฐ ๋ง์์ง๋ค ๋ณด๋๊น ์ปจํธ๋กค๋ฌ๊ฐ ํด์ผํ๋ ์ผ์ด ๋๋ฌด ๋ง์์ ธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ๊ธฐ์ ๋ถ์ฑ๊ฐ ์๊ธฐ๋ ํ์์ด ๊ด์ธก ๋ผ
Massive View Controller๋ผ๊ณ ๋น๊ผฌ๋ ์๋ฏธ๋ก ๋งํ๊ธฐ๋ ํด!
โ ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ MVVM ํจํด์ด ํ์ฌ๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ด
MVC ๐ MVVM ๋น๊ต
1. MVVM์ ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ๋ชจ๋ธ์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๋ค.
2. ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ๋ทฐ๋ชจ๋ธ์ด๋ผ๋ ํด๋์ค๋ฅผ ์๋ก ๋ฐ๊ฒ ๋์๋ค.
3. ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ MVC์์๋ ์ปจํธ๋กค๋ฌ ๋ ์ด์ด์ ์์์ง๋ง, MVVM์์๋ ๋ทฐ ๋ ์ด์ด์ ์๋ค. -> ์์์ด ๋ฐ๋
โ ์ด์ ๋ถํฐ MVVM ํจํด์ ๋ํด์ ์์๋ณด์.
1๏ธโฃ MVVM ํจํด์์ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ View์ View Model์ ๊ฐ๊ณ ์๋ค. -> ๋ทฐ ๋ ์ด์ด์ ํด๋น ( ํ๋์์ผ๋ก ํ์ )
( View Model์ ๋ ธ๋์์ผ๋ก ํ์ )
-> ๋ทฐ ๋ชจ๋ธ์ด ์ค๊ณ์์ ์ญํ ์ ํ๊ณ ์๋ค. ๊ทธ๋์ ๋ทฐ์ ๋ทฐ ๋ชจ๋ธ์ ๋ทฐ์ ๋ทฐ ์ปจํธ๋กค๋ฌ์ ์ปค๋ฎค๋์ผ์ด์ ์ ํ๊ฒ ๋๋ค. ๋ทฐ ๋ชจ๋ธ์ ํ๋ฒ ๋ณด๋๋ก ํ์.
2๏ธโฃ ๋ทฐ ๋ชจ๋ธ์ ๋ชจ๋ธ์ ๊ฐ๊ณ ์๋ค. ( ๋ชจ๋ธ์ ๋นจ๊ฐ์์ผ๋ก ํ์ ) -> MVC ํจํด์์ ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ์ง์ ์ก์ธ์ค ๊ฐ๋ฅํ๋๊ฑธ ๋ทฐ ๋ชจ๋ธ์ด ๋ง๊ณ ์๋ค.
๋ชจ๋ธ์ ๋ทฐ ๋ ์ด์ด์ ์ง์ ์ํตํ์ง ์์!! ๋ชจ๋ ๊ฒ์ ๋ทฐ ๋ชจ๋ธ์ ํตํด์ ์ํตํ๊ฒ ๋ผ
โ ๋ฆฌํฉํ ๋ง
- ๋จ์ผ ์ฑ ์ ๊ฐ๊ธฐ : ์๊ฒ๋ ๋ฉ์๋ ํฌ๊ฒ๋ ์ค๋ธ์ ํธ ๋จ์์์ ์ํ๋๊ฒ๋
- 10, 200 rule : ๋ฉ์๋๋ 10์ค ์์ ํด๋์ค๋ 200์ค ์์ ์ง๋ ๊ฒ์ ์งํค์! (๋จ์ผ ์ฑ ์ ๊ฐ๊ธฐ์ ๋์์ด ๋ผ)
- 30, 400 rule : ์์ ๊ฐ์๋ฐ ์ด์ฌ์๋ ์ด๋ ค์ฐ๋๊น ์ด๋ ๊ฒ ํ๊ธฐ๋ ํด
์ค์ ์ ์ฉ๋ ์ฝ๋๊ฐ ๊ถ๊ธํ๋ค๋ฉด...
ch10 ํ์๊ธ ๋ญํน์ฑ ์ฝ๋๋ฆฌ๋ทฐ(MVVM)
์ด๋ฒ ์๊ฐ์๋ ๊ฐ์๋ ์งง์์ง๋ง, ๊ณต๋ถํ ๋ด์ฉ์ ์์ฐฝ์ธ ์๊ฐ์ด์๋ค... (๋ชฉ์ฐจ) - MVVM Review - Model ์ค์ ์ค๋ช - ViewModel ์ค์ ์ค๋ช - View ์ค์ ์ค๋ช - ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ ๋ ฌํ๋ ์ฝ๋์ ๋ํด์ ์ ๋ฆฌ
rldd.tistory.com
'โ ๏ธ deprecated โ ๏ธ > ํจ์บ (์ฌ์ธ์)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ch11 ํ์๊ธ ๋ญํน์ฑ ์ฝ๋๋ฆฌ๋ทฐ(CollectionView) (0) | 2021.06.22 |
---|---|
๐ ch11 Animation - ๊ฐ๋ ํธ๐ (0) | 2021.06.22 |
ch10 ํ์๊ธ ๋ญํน์ฑ ์ฝ๋๋ฆฌ๋ทฐ(MVVM) (0) | 2021.06.21 |
ch09 ํ์๊ธ ๋ญํน์ฑ ์ฝ๋๋ฆฌ๋ทฐ (0) | 2021.06.21 |
ํจ์คํธ ์บ ํผ์ค iOS ๊ฐ์ (0) | 2021.06.20 |