MVVM ์ํคํ ์ฒ
MVVM pattern, ViewModel, data binding, separation of concerns, ํ ์คํธ ๊ฐ๋ฅ์ฑ
1MVVM ์ํคํ
์ฒ์์ ViewModel์ด๋ ๋ฌด์์ธ๊ฐ์?
MVVM ์ํคํ ์ฒ์์ ViewModel์ด๋ ๋ฌด์์ธ๊ฐ์?
๋ต๋ณ
ViewModel์ ๋น์ฆ๋์ค ๋ก์ง์ ์บก์ํํ๊ณ UIKit์ด๋ SwiftUI์ ์์กดํ์ง ์๊ณ ๋ทฐ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. Model๊ณผ View ๊ณ์ธต์ ์ฐ๊ฒฐํ๋ฉด์ ๋ช ํํ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ ์งํฉ๋๋ค. ์ด ์ํคํ ์ฒ๋ ๋จ์ ํ ์คํธ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ํฅ์์ํต๋๋ค.
2MVVM์์ Model์ ์ฃผ์ ์ฑ
์์ ๋ฌด์์ธ๊ฐ์?
MVVM์์ Model์ ์ฃผ์ ์ฑ ์์ ๋ฌด์์ธ๊ฐ์?
๋ต๋ณ
Model์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ํ๋ ๋๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๋น์ฆ๋์ค ๊ท์น์ ์ ์ฉํ๋ฉฐ View ๋ฐ ViewModel ๊ณ์ธต๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ง๋ฉ๋๋ค. UI ํ๋ ์์ํฌ๋ก๋ถํฐ์ Model ๋ ๋ฆฝ์ฑ์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ํ ์คํธ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ์ ๋จ์ผ ์ง์ค ๊ณต๊ธ์ ์ญํ ์ ํฉ๋๋ค.
3MVVM ์ํคํ
์ฒ์์ View์ ์ฃผ์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
MVVM ์ํคํ ์ฒ์์ View์ ์ฃผ์ ์ญํ ์ ๋ฌด์์ธ๊ฐ์?
๋ต๋ณ
View๋ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์บก์ฒํ๋ ์ญํ ์ ํฉ๋๋ค. ํ๋ ์ ํ ์ด์ ์ฝ๋๋ง ํฌํจํ๊ณ ๋น์ฆ๋์ค ๋ก์ง์ ํผํด์ผ ํฉ๋๋ค. View๋ data binding์ ํตํด ViewModel์ ๋ฐ์ธ๋ฉ๋์ด ๋จ์ํ๊ณ ํ ์คํธ ๊ฐ๋ฅํ ์ํ๋ฅผ ์ ์งํฉ๋๋ค. SwiftUI์์๋ @ObservedObject๋ @StateObject๋ฅผ ์ฌ์ฉํ์ฌ ViewModel์ ๊ด์ฐฐํฉ๋๋ค. UIKit์์๋ Combine์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๊ตฌ๋ ํฉ๋๋ค.
MVVM ๋งฅ๋ฝ์์ data binding์ด๋ ๋ฌด์์ธ๊ฐ์?
SwiftUI์์ @Published์ @ObservedObject์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
+17 ๋ฉด์ ์ง๋ฌธ
๊ธฐํ iOS ๋ฉด์ ์ฃผ์
Swift ๊ธฐ์ด
Swift ์ธ์ด ๊ธฐ์ด
UIKit ๊ธฐ์ด
UIViewController ์๋ช ์ฃผ๊ธฐ
UserDefaults & Keychain
์ ํ๋ฆฌ์ผ์ด์ ์๋ช ์ฃผ๊ธฐ
Auto Layout & Constraints
UITableView & UICollectionView
SwiftUI ๊ธฐ์ด
SwiftUI ์ํ ๊ด๋ฆฌ
SwiftUI ๋ด๋น๊ฒ์ด์
Networking & URLSession
Codable ๋ฐ JSON ํ์ฑ
Core Data
ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ
ํธ์ ์๋ฆผ
๋จ์ ํ ์คํธ์ XCTest
UI ํ ์คํธ
Xcode ๋ฐ ๋น๋ ์์คํ
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
์ฑ๋ฅ ์ต์ ํ
๋ณด์ ๋ฐ ์ํธํ
SwiftUI Advanced
iOS ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ
๋ค์ ๋ฉด์ ์ ์ํด iOS์ ๋ง์คํฐํ์ธ์
๋ชจ๋ ์ง๋ฌธ, flashcards, ๊ธฐ์ ํ ์คํธ, ์ฝ๋ ๋ฆฌ๋ทฐ ์ฐ์ต, ๋ฉด์ ์๋ฎฌ๋ ์ดํฐ์ ์ ๊ทผํ์ธ์.
๋ฌด๋ฃ๋ก ์์ํ๊ธฐ