-
[iOS] MVC (Model-View-Controller)iOS 2022. 3. 17. 02:07
MVC๋?
MVC๋ ๋ค์ 3๊ฐ์ง ์ฃผ์ ๊ฐ์ฒด๋ก ๊ตฌ์ฑ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํจํด์ด๋ค.

Model
์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ์บก์ํํ๊ณ , ํด๋น ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ์ฒ๋ฆฌํ๋ ๋ก์ง๊ณผ ๊ณ์ฐ์ ์ ์ํ๋ค.
View
์ฑ์ ๋ทฐ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
Controller
delegate ํจํด์ ํตํด ํ๋ ์ด์์ ์ ํ๋ฆฌ์ผ์ด์ View ๊ฐ์ฒด์ ํ๋ ์ด์์ Model ๊ฐ์ฒด ์ฌ์ด์ ์ค๊ฐ์ ์ญํ ์ ํ๋ค.
Model, View, Controller์ ์๋ก ์์กดํ์ง ์๊ณ Loosely Coupled ๋์ด์๋ค. ์ด๋ ์ฆ Model, View, Controller๊ฐ ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ค๋ ์๋ฏธ๋ก, ์ฝ๋ ๊ตฌ์ฑ์ด ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ฐ๋ฉฐ ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋ค. ๋ชจ๋ธ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ๋ทฐ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ ์ ์๋ค.
Model-View-Controller ๋์ ์์
1๏ธโฃ View๊ฐ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ ๋ฐ์
2๏ธโฃ View์ ์ด๋ฒคํธ๋ฅผ Controller์๊ฒ ์๋ฆผ
3๏ธโฃ Controller๋ Model์๊ฒ ๋ฐ์ดํฐ ์์ฒญ
4๏ธโฃ Model์ Controller์๊ฒ ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ
5๏ธโฃ Controller๋ View์๊ฒ ํ์ํ ๋ด์ฉ ์ ๋ฌ
6๏ธโฃ View๋ Controller๋ก๋ถํฐ ๋ฐ์ ์ ๋ณด๋ฅผ ํ ๋๋ก View์ ํ์
1. Model
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ์บก์ํํ๊ณ , ํด๋น ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ์ฒ๋ฆฌํ๋ ๋ก์ง๊ณผ ๊ณ์ฐ์ ์ ์ํ๋ค.
- ํ๋์ Model ๊ฐ์ฒด๋ ๋ค๋ฅธ Model ๊ฐ์ฒด์ 1:1 ๋๋ 1:๋ค ๋์ ๊ด๊ณ๋ฅผ ๋งบ์ ์ ์๋ค.
- Model ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ํธ์งํ ์ ์๋ View ๊ฐ์ฒด์ ๋ช ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๋ ์๋๋ค. ์ฆ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ํ์ ๋ฌธ์ ์ ๊ด๋ จ์ด ์์ด์ผ ํ๋ค.
- persistence, model objects, parsers, managers, networking code ๋ฑ์ด ์กด์ฌํ๋ค.
- Network Code
- ์ ์ฒด ์ฑ์ ๋คํธ์ํฌ ํต์ ์๋ ํ๋์ ํด๋์ค๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
- ์ด๋ฅผ ํตํด HTTP ํค๋, ์๋ต๊ณผ ์๋ฌ ์ฒ๋ฆฌ ๋ฑ์ ๋ชจ๋ ๋คํธ์ํฌ ์์ฒญ์ ๊ณตํต๋๋ ๊ฐ๋ ์ ์ฝ๊ฒ ์ถ์ํํ ์ ์๋ค.
- Persistence Code
- ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Core Data ๋๋ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค.
- Parsing Code
- ๋คํธ์ํฌ ์๋ต์ ํ์ฑํ๋ ๊ฐ์ฒด๋ฅผ ๋ชจ๋ธ์ ํฌํจ์์ผ์ผํ๋ค.
- Swift ๋ชจ๋ธ ๊ฐ์ฒด์์๋ JSON ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ์ ์ฌ์ฉํ์ฌ ํ์ฑํ ์ ์๋๋ฐ, ์ด๋ ๊ฒ ํ๋ฉด ๋คํธ์ํฌ ๊ณ์ธต์ด ๋ชจ๋ธ ๊ฐ์ฒด์ ์ธ๋ถ ์ฌํญ์ ์ ํ์๊ฐ ์๋ค.
- Managers and abstraction layers/classes
- ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ํด๋์ค ๊ฐ์ ์ ์ฐฉ์ ์ญํ ์ ํ๋ ์ ํ์ ์ธ “๊ด๋ฆฌ์” ๊ฐ์ฒด๊ฐ ์๋ค.
- ํ์ ๋ ๋ฒจ์ API์ ๋ํ wrapper ์ญํ ์ ํ ์๋ ์๋ค. iOS์ ํค์ฒด์ธ wrapper, notification์ ๋์์ด ๋๋ ํด๋์ค, Health Kit์ ์ฌ์ฉํ๋ ๋ฐ ๋์ ๋๋ค.
- Data sources and delegates
- ๋ชจ๋ธ ๊ฐ์ฒด๊ฐ ํ ์ด๋ธ๋ทฐ๋ ์ปฌ๋ ์ ๋ทฐ์ ๊ฐ์ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ data source ๋๋ delegate๊ฐ ๋๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค.
- Constants
- ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
- Helpers and extensions
- ํ๋ก์ ํธ์์ string, collection ๋ฑ์ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ, ์ด ๋ํ ๋ชจ๋ธ๋ก ๊ฐ์ฃผํ๋ค.
- Network Code
๐ก ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํ๋ ๋ทฐ ๊ณ์ธต์์์ ์ฌ์ฉ์ ์์ ์ Controller ๊ฐ์ฒด๋ฅผ ํตํด ์ ๋ฌ๋๊ณ Model ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ค. Model ๊ฐ์ฒด๊ฐ ๋ณ๊ฒฝ๋๋ฉด (์: ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ํตํด ์ ๋ฐ์ดํฐ๊ฐ ์์ ๋จ) Controller ๊ฐ์ฒด์ ํต๋ณดํ์ฌ ์ ์ ํ View ๊ฐ์ฒด๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
2. View
- ์ฑ์ ๋ทฐ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
- ์์ ์ด ๋ณด์ฌ์ง๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๊ณ ์ฌ์ฉ์ ์ก์ ์ ์๋ตํ ์ ์๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ์ฑ๊ณผ ์ํธ์์ฉํ ๋ ๋ทฐ ๊ณ์ธต๊ณผ ์ํธ ์์ฉํ๋ค.
- ๋๋ฉ์ธ๋ณ ๋ก์ง์ ํฌํจํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉํ ์ ์๋ค.
- UILabel์ ๊ฒฝ์ฐ, ํ๋ฉด์ ํ ์คํธ๋ฅผ ํ์ํ๋ ๋ทฐ์ด๋ฉฐ ์ฌ์ฌ์ฉ ๋ฐ ํ์ฅ์ด ๊ฐ๋ฅํ๋ค.
- View ๊ฐ์ฒด์ ์ฃผ์ ๋ชฉ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ Model ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ํด๋น ๋ฐ์ดํฐ๋ฅผ ํธ์งํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , View ๊ฐ์ฒด๋ MVC ์ ํ๋ฆฌ์ผ์ด์ ์ Model ๊ฐ์ฒด์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ถ๋ฆฌ๋๋ค. ์ฃผ์๋ก์ ์๋ฅผ ๋ค๋ฉด ์ ํ๋ฒํธ ๋ฐ ์ ๋ณด๊ฐ ๋ณด์ด๋ ํ๋ฉด๋ค์ ๋งํ๋ค.
View ์ฒดํฌ๋ฆฌ์คํธ
โ๏ธ ๋ชจ๋ธ ๊ณ์ธต๊ณผ ์ํธ์์ฉํ๋๊ฐ?
โ๏ธ ๋น์ฆ๋์ค ๋ก์ง์ด ํฌํจ๋์ด ์๋๊ฐ?
โ๏ธ UI์ ๊ด๊ณ ์๋ ์กฐ์์ ์๋ํ๋๊ฐ?
์ ์ง๋ฌธ๋ค ์ค ํ๋๋ผ๋ ํด๋นํ๋ ๊ฒ์ด ์๋ค๋ฉด, ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ด ์ข๋ค.
๐ก View ๊ฐ์ฒด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Controller ๊ฐ์ฒด๋ฅผ ํตํด Model ๋ฐ์ดํฐ์ ๋ณํ๋ฅผ ํ์ตํ๊ณ , ์ฌ์ฉ์์ ๋ณ๊ฒฝ ์ฌํญ(์: ํ ์คํธ ํ๋์ ์ ๋ ฅ๋ ํ ์คํธ)์ Controller ๊ฐ์ฒด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ Model ๊ฐ์ฒด์ ์ ๋ฌํ๋ค.
3. Controller
- ์ปจํธ๋กค๋ฌ๋ delegate ํจํด์ ํตํด ํ๋ ์ด์์ ์ ํ๋ฆฌ์ผ์ด์ View ๊ฐ์ฒด์ ํ๋ ์ด์์ Model ๊ฐ์ฒด ์ฌ์ด์ ์ค๊ฐ์ ์ญํ ์ ํ๋ค.
- Controller ๊ฐ์ฒด๋ View ๊ฐ์ฒด๊ฐ Model ๊ฐ์ฒด์ ๋ณ๊ฒฝ์ฌํญ์ ์ธ์งํ ์ ์๋๋ก ํ๊ณ , ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๊ฐ๋ฅํ๋๋ก ํ๋ ๋งค๊ฐ์ฒด๊ฐ ๋๋ค.
- ๋๋ฉ์ธ๋ณ ๊ท์น๊ณผ ๊ด๋ จ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์ฑ์์ ๊ฐ์ฅ ์ฌ์ฌ์ฉ์ฑ์ด ์ ์ ๋ถ๋ถ์ด๋ค.
- ๋ชจ๋ธ ๊ฐ์ฒด์ ๋ชจ๋ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ์ ๋ณด ํ๋ฆ์ ์ ์ํ๋ค.
- ์ด์์ ์ธ ์๋๋ฆฌ์ค์์๋ ์ปจํธ๋กค๋ฌ ์ํฐํฐ๊ฐ ๋ค๋ฃจ๊ณ ์๋ ๊ตฌ์ฒด์ ์ธ ๋ทฐ๋ฅผ ์ ์ ์๋ค. ๋์ , ํฌ๋กํ ์ฝ์ ํตํด ์ถ์ ํ์
๊ณผ ํต์ ํ๋ค.
- ์๋ฅผ ๋ค๋ฉด UITableView๊ฐ UITableViewDataSource ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ดํฐ์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
- Controller ๊ฐ์ฒด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ๋ฐ ์กฐ์ ์์ ์ ์ํํ๊ณ , ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์๋ช ์ฃผ๊ธฐ(Life cycle)๋ฅผ ๊ด๋ฆฌํ๊ธฐ๋ ํ๋ค.
- ์์, ๋ฐ์ดํฐ ๋ก๋ ํธ๋ฆฌ๊ฑฐ, UI ์ํธ ์์ฉ ์ฒ๋ฆฌ, UI์ ๋ชจ๋ธ ๊ฐ์ ์กฐ์ ๋ฑ์ ๋ชฉ์ ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ํ ์คํธ๋ฅผ ์ํํ์ง ์๋๋ค.
- Cocoa Touch ํ๋ ์์ํฌ๋ Coordinating Controller, View Controller (iOS), Mediating Controller (OS X)์ ์ธ ๊ฐ์ง ์ฃผ์ ์ปจํธ๋กค๋ฌ ์ ํ์ ์ ๊ณตํ๋ค.
Controller ์ฒดํฌ ๋ฆฌ์คํธ
โ๏ธ persistence์ network ์ค ์ด๋ค ๊ฒ์ ๋จผ์ ์ ๊ทผํด์ผ ํ๋๊ฐ?
โ๏ธ ์ผ๋ง๋ ์์ฃผ ์ฑ์ ๊ฐฑ์ ํด์ผํ๋๊ฐ?
โ๏ธ ๋ค์ ํ๋ฉด์ ๋ฌด์์ด๋ฉฐ, ์ด๋ค ์ํฉ์์ ํ์๋์ด์ผ ํ๋๊ฐ?
โ๏ธ ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋์ด๊ฐ๋ฉด ๋ฌด์์ ์ ๋ฆฌํด์ผ ํ๋๊ฐ?
โ๏ธ ์ฌ์ฉ์๊ฐ ์ ์ ํญํ ๋ค์์ ์์ ์ ๋ฌด์์ธ๊ฐ?
๐ก Controller ๊ฐ์ฒด๋ View ๊ฐ์ฒด์์ ๋ฐ์๋ ์ฌ์ฉ์ ๋์ ๋ฐ ์๋ (์ฌ์ฉ์์ ๋ฒํผ ํด๋ฆญ ๋๋ ํ ์คํธ ์ ๋ ฅ)๋ฅผ ํด์ํ๊ณ ์๋ก์ด ๋ฐ์ดํฐ ๋๋ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ Model ๊ฐ์ฒด๋ก ์ ๋ฌํ๋ค. Model ๊ฐ์ฒด๊ฐ ๋ณ๊ฒฝ๋๋ฉด Controller ๊ฐ์ฒด๊ฐ ์ ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ์ ์๋๋ก ์ ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฅผ View ๊ฐ์ฒด์ ์ ๋ฌํ๋ค.
3-1. Coordinating Controllers
Coordinating Controller๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด ๋๋ ์ผ๋ถ ๊ธฐ๋ฅ์ ๊ฐ๋ ํ๊ณ ๊ด๋ฆฌํ๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋ณ๋ก ๋ค๋ฅธ ๋ก์ง์ด ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ (injected)๋๋ ์ฅ์๋ผ๊ณ ํ ์ ์์ผ๋ฉฐ, ๊ทธ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ธ๋ฆฌ๊ฒ์ด์ (delegation) ๋ฉ์์ง์ ์๋ตํ๊ณ ์๋ฆผ(notifications)์ ๊ด๋ฆฌ
- ์ฌ์ฉ์๊ฐ ๋ฒํผ๊ณผ ๊ฐ์ ์ปจํธ๋กค์ ํญํ๊ฑฐ๋ ํด๋ฆญํจ์ ๋ฐ๋ผ ์ ์ก๋๋ ๋์ ๋ฉ์์ง(action message)์ ์๋ต
- ๊ฐ์ฒด ๊ฐ์ ์ฐ๊ฒฐ์ ํ๋ฆฝ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์์ ๊ฐ์ ๊ธฐํ ์ค์ ์์ ์ํ
- ์์ ํ "owned" ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
iOS ์ ํ๋ฆฌ์ผ์ด์ ์์๋ View Controller๊ฐ Coordinating Controller์ ์ญํ ์ ๊ฒธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
3-2. View Controllers
- UIKit์์ View Controller๋ ์ฝํ ์ธ ๋ฅผ ํ๋ฉด์ ํ์ํ๋ ๋ทฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ํด๋น ๋ทฐ์ ๋ํ ์ฐธ์กฐ(reference)๋ฅผ ์ ์งํ๊ณ , View Controller๋ ์ด ๋ทฐ์ ํ์(presentation)์ ํ์ ๋ทฐ๋ก์ ์ ํ(transition)์ ๊ด๋ฆฌํ๋ค. ๋ด๋น๊ฒ์ด์ ๋ฐ, ํญ ๋ฐ ๊ทธ๋ฆฌ๊ณ ์ด์ ๊ด๋ จ๋ ๋ชจ๋ ํ๋ ์ ํ ์ด์ ๋์์ View Controller ๊ฐ์ฒด์ ์ํด ๊ด๋ฆฌ๋๊ณ ๊ตฌํ๋๋ค. ๋ํ, Modal View๋ฅผ ํ์ํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๊ฒฝ๊ณ ์ ์๋ตํ๋ฉฐ ๊ธฐ๊ธฐ์ ๋ฐฉํฅ(orientation)์ด ๋ณ๊ฒฝ๋ ๋ ๋ทฐ๋ฅผ ํ์ ์ํฌ ์ ์๋ค.
- iOS์ View Controller๋ UIViewController์ ํ์ ํด๋์ค์ ์ธ์คํด์ค์ด๋ค. UIKit์ UITableViewController์ ๊ฐ์ ์ฌ๋ฌ ํน์ ๋ชฉ์ ์ UIViewController ํ์ ํด๋์ค๋ฅผ ์ ๊ณตํ๋ค. Controller๊ฐ Model๊ณผ View ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ค๊ฐํ๋๋ก ํ๋ ค๋ฉด ๋ฐ๋์ ํ๋ ์์ํฌ์ View-Controller ํด๋์ค(์ : UIViewController, UITableViewController ๋ฑ)๋ฅผ ํ์ฅํด์ผํ๋ค. View Controller๋ ์ฌ๋ฌ ๊ฐ์ง ํ๋ ์์ํฌ ๊ฐ์ฒด์ ๋ํ ์์์ ๋๋ ๋ฐ์ดํฐ ์๋ณธ ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
MVC ์ฅ์
- Loosely Coupled - ๋์จํ ๊ฒฐํฉ
- Removes unnecessary dependencies - ๋ถํ์ํ ์ข ์์ฑ ์ ๊ฑฐ
- Reusable without modification - ์์ ์์ด ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
- Code reuse - ์ฝ๋ ์ฌ์ฌ์ฉ
- Extendable code - ํ์ฅ ๊ฐ๋ฅํ ์ฝ๋
- High Cohesion - ๋์ ์์ง๋ ฅ
- Easier to maintain or modify - ์ ์ง๋ณด์ ๋ฐ ์์ ์ด ์ฉ์ด
- Supports multiple views - ์ฌ๋ฌ ๋ทฐ ์ง์
- Each part can be tested independently (Model, View, Controller) - ๊ฐ๋ณ์ ์ผ๋ก ํ ์คํธ ๊ฐ๋ฅ
MVC ํ๊ณ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ๋ค์์ ๋ทฐ์ ๋ชจ๋ธ์ด ํ๋์ ์ปจํธ๋กค๋ฌ์ ์ฐ๊ฒฐ๋๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ, ์ปจํธ๋กค๋ฌ๊ฐ ๋ถํ์ํ๊ฒ ์ปค์ง๊ฒ ๋๋๋ฐ ์ฝ๋ ๋ถ์/์์ ๊ณผ ํ ์คํธ๊ฐ ํ๋ค์ด์ง๊ณ , Model๊ณผ View๊ฐ ๋ณต์กํ๊ฒ ์ฎ์ฌ์์ด ์ ์ง๋ณด์๊ฐ ์ด๋ ต๊ฒ ๋๋ค. ์ด๋ฐ ์ปจํธ๋กค๋ฌ๋ฅผ Massive-View-Controller๋ผ๊ณ ํ๋ค.
- ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด์ ๋ค์ํ ํจํด (MVP, MVVM ๋ฑ)์ด ํ์๋์๋ค.
์ฐธ๊ณ ๋งํฌ
'iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] UITextField extension์ผ๋ก ๊ตฌํํ ๋ NSObject๋ฅผ ์์ํด์ผํ๋ ์ด์ (0) 2022.04.01 [iOS] UITest UITargetAppPath should be provided ์ค๋ฅ ํด๊ฒฐ (0) 2022.03.22 [iOS] TabBarItem ์ด๋ฏธ์ง ๋ณ๊ฒฝํ ๋ ์ฃผ์ํ ์ (0) 2022.02.23 [iOS] instantiateViewController(withIdentifier:) (0) 2022.02.19 [iOS] ๋ทฐ์ ์ํ๋ณํ ๊ฐ์ง ๋ฉ์๋ (0) 2022.02.18