[Stanford iOS]๋ ํ๊ธ๋ง์ด ๋ฒ์ญํ Stanford iOS๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
์ํคํ ์ณ
MVC ๋์์ธ ํจํด
iOS ๊ธฐ๋ณธ ๋์์ธ ํจํด
๐ Model
What ํ๋ก๊ทธ๋จ์ด ํ๋์ผ, ์ฆ ๋ชจ๋ ๊ณ์ฐ์ ๋ด๋นํ๋ค. UI์๋ ์๊ด ์๋ ์ผ์ ์ฒ๋ฆฌํจ
๐ View
UI == Client์ ์ํธ์์ฉ์ ํ๋ ๋ถ๋ถ -> View ํผ์ ํ ์ ์๋ ๋ถ๋ถ
๐ Controller
How Model๊ณผ View ์ฐ๊ฒฐ (View๋ฅผ ๋ฆฌ์ค๋ํ๊ณ , ํ๋จํ์ฌ Model ์ ๋ฐ์ดํธ)
View <-> Model ์ฌ์ด์ ์ํต์ X
View ↔๏ธ Controller
View๋ Controller์ ๋ฏธ๋์ธ ์ญํ ์ ํ๋ค. ํญ์ Controller์ ํ๋ฝ์ ๋งก๊ณ , ํ์์ ๋ํ ๋ณด๊ณ ๋ฅผ ํฉ๋๋ค.
๋ฌด์์ ํ ๊ฒ์ธ์ง(will) ํด๋๋๋์ง(should) ํ๋์ง(did)๋ฅผ ๊ฐ์ฒด๋ฅผ ํตํด ์๋ ค์ค๋๋ค.
๋, View๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ Controller์์ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ฐ์์์ผ ํฉ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก UI๋ก์ง์ด ๋์ํ๋ ๋ฐฉ์
Model ↔๏ธ Controller
Model์ด ๊ฐ์ง๊ณ ์๋๋ฐ์ดํฐ๋ฅผ Controller๊ฐ ๋ง์๋๋ก ๊ฐ์ง๊ณ ์ค๊ณ , ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
Model๊ณผ Controller์ ์ํต ๋ฐฉ์์, Radio Station Model(๊ต์๋ say..) ์ ๋๋ค.
Model์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์๋ค๋ ๊ฒ์ ๋ผ๋์ค๋ก ์๋ฆฌ๋ฉด, Controller๋ ๊ทธ ๋ฐ์ดํฐ์ ๋ง๋ ์ฃผํ์๋ฅผ ์ค์ ํด์ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๊ฐ์งํด์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์, ๋ผ๋์ค์ ์ฃผํ์๋ ์ดํด๋ฅผ ์ํ ์๋ฏธ์ ๊ด๊ณ์ ๋๋ค. ์ค์ ๋ก๋ Notification & KVO ๋ผ๊ณ ํฉ๋๋ค.
Q. View์์ ์ฃผํ์๋ฅผ ์ค์ ํด์ Model์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์์๊น?
โก๏ธ ๋ค, ์ค๊ณ๋ฅผ ๊ทธ๋ ๊ฒ ํ์ง ์๊ณ , ๊ทธ๋ฐ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๋ค๊ณ ํฉ๋๋ค.
์ค์ ์ฑ์์์ MVC
์ค์ ์ฑ์์๋ ํ๋์ MVC ๊ตฌ์กฐ๊ฐ ์๋, ์ฌ๋ฌ MVC ๋ค์ด ๊ฒฐํฉ๋์ด์ผ ํฉ๋๋ค.
์ด๋ก์ ํ์ดํ๋ฅผ ๋ณด๋ฉด ์์ ์๋ฏ์ด, ๊ธฐ๋ณธ์ ์ผ๋ก MVC๋ ๋ค๋ฅธ MVC์ ๋ทฐ ์ผ๋ถ๋ก๋ง ์ผํ ์ ์์ต๋๋ค.
Controller : ๋ชจ๋ Controller๋ UIViewController๋ฅผ ์์๋ฐ์์ผํจ
class ViewController: UIViewController {
}