1. ๋ทฐ์ปจ์ด ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ธ์ ๋ทฐ๋ชจ๋ธ์ด ์์ ํ๋ค. (Output์ด๋ ๊ณ์ฐ ์์ฑ, ํจ์ ๋ฑ์ผ๋ก)๊ฒฐ๊ตญ, ๋ทฐ์ปจ์ ๋ทฐ๋ชจ๋ธ์ด ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ๋ทฐ์ปจ์ ํ์ํด์ผํ๋ค. ๋ทฐ์ปจ์ ๋ทฐ๋ชจ๋ธ์ ์์ ํ๋ค. ๋ทฐ์ ๋์์ผํ ์ ๋ณด๋ฅผ ๋ทฐ์ปจ์ด ๋ทฐ๋ชจ๋ธ์ ๊ฑฐ์ณ ํ์ํ๊ฒ ๋๋ ๊ฒ. 2. ์ฌ์ฉ์๋ก๋ถํฐ ๋ทฐ์ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ๋ทฐ์ปจ์ ๋ทฐ๋ชจ๋ธ์๊ฒ ๋ฒํผ์ด ๋๋ ธ๋ค๊ณ ์๋ ค์ฃผ๋ฉด ๋๋ค. ์ด๋ ๋ทฐ์์ ๋ฒํผ์ด ๋๋ ธ์ ๋์ ๋์์ ํ๋ฉด ๋๋ค. ๋ทฐ๋ชจ๋ธ์ ๋ฒํผ์ด ๋๋ฆฐ ์ก์
์ ๊ฐ์ง๊ณ ๋ชจ๋ธ(๋ฐ์ดํฐ)๋ฅผ ๋ณํ ์ํจ๋ค. 3. ๋ทฐ๋ชจ๋ธ์์ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํด ๋ชจ๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๊ผ๋ค๊ณ ์๋ ค์ค๋ค. ๋ทฐ๋ชจ๋ธ์ ๋ชจ๋ธ(๋ฐ์ดํฐ)์ ๋ก์ง์ ๊ฐ๋๋ค. ๋ชจ๋ธ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ํด๋ก์ ๋ฅผ ํตํด ๋ทฐ๋ชจ๋ธ์์ ๋ทฐ๋ก ์ ๋ฌ. ๋ทฐ๋ชจ๋ธ์์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ฉด ๋ฐ์ํ์ผ๋ก ๋ทฐ์ ์ ๋ฌํ ์ ์๋ค. ..
๐ iOS/Patterns & Arch
๐ฌ Introduction ํ
์คํธํ๋ : ์ ์ ๋ก๋ถํฐ ์
๋ ฅ์ ๋ฐ๋๋ค. ์
๋ ฅ๋ ๋์๋ค์ ๋ทฐ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํ๋ค.์ด๋, ๋ธ๋ฆฌ๊ฒ์ดํธ(๋๋ฆฌ์) ํจํด์ด ํ์ํ๋ค. ์ฆ, ํ
์คํธ ํ๋์ ๋๋ฆฌ์๋ ๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ๋๋ค. ํ
์คํธํ๋๋ผ๋ ๊ฐ์ฒด์ ๋ทฐ์ปจํธ๋กค๋ฌ๋ผ๋ ๊ฐ์ฒด๊ฐ ์์ ๋ํ
์คํธํ๋์ ๋ทฐ์ปจํธ๋กค๋ฌ์ ์์ฌ์ํต์ ์ํด ์ฌ์ฉํ๋๊ฒ ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด์ด ์์ฌ์ํต์ ํ๊ธฐ ์ํด์ ์ค๊ฐ์ ๋๋ฆฌ์(๋ธ๋ฆฌ๊ฒ์ดํธ)๋ ํ๋กํ ์ฝ ํ์
์ผ๋ก ์ค์ ํ๊ณ ํ๋กํ ์ฝ ํ์
์ผ๋ก ๋์์ด ์ ๋ฌ๋๋ค. ๊ฐ์ฒด ๋ด์์ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ์ค์ ํ๋ค๋ฉด self๋ผ๊ณ ์ค์ ํ ์ ์๋ค. ์๋ค๋ฉด ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ์ง์ ์ ์ผ๋ก ์ค์ ๋ทฐ์ปจํธ๋กค๋ฌ๋ ํ
์คํธ ํ๋์ ํ๋กํ ์ฝ์ ์ฑํํด์ผ ํ๋ค. ์ด ํ๋กํ ์ฝ์ด ๊ฐ์ง๊ณ ์๋ ์ ํ์ ์ธ ์๊ตฌ์ฌํญ๋ค(๋ฉ์๋)์ ๊ตฌํํ๋ฉดํ
์คํธํ๋์์ ๋ฐ์ํ ๋ด์ฉ๋ค์ ๋ทฐ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํ ์ ..
๐ 1 . Model, View, ControllerModel๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง(ํ๋ฉด๊ณผ ๊ด๋ จ์ด ์๋ ๋ก์ง๊ณผ ๋ฐ์ดํฐ ๊ด๋ จ)Model์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด Controller์ ์๋ฆฌ๊ธฐ ์ํด KVO, Delegate ํจํด, Notification Center ๋ฑ์ ์ฌ์ฉํ๋ค.์๋ฅผ ๋ค๋ฉด, ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๋ ํด๋์ค๋ ๊ตฌ์กฐ์ฒด๊ฐ ์ฌ๊ธฐ์ ํด๋นํ๋ค. view๋ทฐ์ปจํธ๋กค๋ฌ์ ๋ช
๋ น์ ๋ฐ์ UI ์์๋ค์ ์ฌ์ฉ์ ํ๋ฉด ํ์ํ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ด๋น.view๋ Model์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ด๋ค. Controller๋ View์์ ๋ฐ์ํ ์ ์๋ action์ ๋ํ target์ ๋ง๋ค์ด๋๋ค.์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด View๋ ํด๋น ์ด๋ฒคํธ๋ฅผ Controller์ ์ ๋ฌํ๋ค.Vi..
๐ 1 . ์ฑ๊ธํค ํจํด ์ ์ผํ๊ฒ ํ๋๋ง ์กด์ฌํ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ถ์ ๋ํน์ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์ฑ์ ์ฒด์์ ํ๋๋ง ์กด์ฌํ๊ณ ์ฑ ์ ์ญ์์ ๋ชจ๋ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๋์์ธ ํจํด์ด๋ค. 1. ๊ฐ๋ณ์ ์ธ ์ธ์คํด์ค๋ฅผ ์์ฑํ ํ์๊ฐ ์์2. ๋จ ํ๋์ ์ธ์คํด์ค๋ฅผ ์ฌํ์ฉํด์ ์ฌ๋ฌ ๊ณณ์์ ํ์ฉํ ๋ ์ ํฉ. ์์น์๋น์ค, ๋ก๊น
์๋น์ค, UserDefaults ์ ์ฒด ๊ด๋ฆฌ ํด๋์ค, ๋คํธ์ํฌ ์ค๋ณต ๋ก์ง ๊ด๋ฆฌ ํด๋์ค ๋ฑ์ ์ฌ์ฉ ๊ฐ๋ฅ static ํค์๋๊ฐ ๋ถ์ผ๋ฉด ์ ์ผ ๋จผ์ ํธ์ถ๋ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ค. ์ฑ๊ธํค ๊ฐ์ฒด๊ฐ ๋ถ๋ฆฌ๊ณ ๋ ๋ค ์ฑ์ด ์ข
๋ฃ๋ ๋๊น์ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ํธ์ถํ๋ ๋ชจ๋ ๋ถ๋ถ์ ๋จ ํ๋์ ์ธ์คํด์ค๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์ ๊ทผํ๋ค. ์ด๋, ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ก ์ํด๋ฅผ ๋ณด์ง ์๋์ง ๋ฐ๋์ ๊ณ ๋ คํด๋ณผ ๊ฒ. class S..