iOS์ฑ ๊ฐ๋ฐ๐: ์๋ฏธ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ3
์ ๋ณธ iOS ๊ฐ๋ฐ์๋ ์ด๋ ๊ฒ ์๊ฐํ ์ ์์ต๋๋ค. ํ์ด์ค๋ถ์์ ์ฌ์ฉํ๋ ํผ๋๋ฅผ ๋ชจ๋ธ๋งํ Feed ๋ชจ๋ธ์ API ๋ชจ๋์์ ์ฌ์ฉํ๋ ๋ชจ๋ธ๊ณผ Persistence ๋ชจ๋์์ ์ฌ์ฉํ๋ ๋ชจ๋ธ๋ก ๋ถ๋ฆฌํ๋ ๋์ , Feed ๋ชจ๋ธ์ ๋ช ๊ฐ์ง ์์ฑ์ ๊ฐ์ง๋ Protocol๋ก ๋ง๋ค๊ณ ๊ฐ๊ฐ์ ๋ชจ๋์์ ๋ชจ๋ธ์ ๋ํ extension์ ๋ง๋๋ ์ ๊ทผ ๋ฐฉ์์ ์ด๋จ๊น? ์ด ๋ฐฉ์์ ๋จ์ ์ด ์๋ค๋ฉด ๋ฌด์์ผ๊น? ๐ก ๋น์ฐํ Feed ๋ชจ๋ธ์ Protocol๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ์ง๋ง, Feed ๋ชจ๋ธ์ ๋ถ๋ณ ๋ฐ์ดํฐ์ ๋๋ค. ์ํ๋ง ์กด์ฌํ ๋ฟ์ด์ง ๋์์ด ์์ต๋๋ค. ๋ฐ๋ผ์ Protocol์ getter๋ง ๋ ธ์ถํฉ๋๋ค. ๊ฒ๋ค๊ฐ Protocol๋ก ๋ง๋ค์ด๋ ๋ง์ ๋ชจ๋์ด ์ฌ์ ํ Feed Protocol์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๋์ ๊ฒฐํฉ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Protocol์ ๋ณ๊ฒฝํ๋ฉด ์ฌ๋ฌ ๋ชจ๋์ด ์์๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํํํ ๋๋ Protocol๋ณด๋ค๋ Struct๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฐ์ฅ ํฐ ๋จ์ ์ Struct๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ป์ ์ ์๋ ์ฅ์ ์ ์๊ฒ ๋๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, Feed Protocol์ ๊ตฌํํ๋ Class๊ฐ ์์ต๋๋ค. Class๋ ๋ณ๊ฒฝํ ์ ์๋ ๊ณต์ ์ํ๋ฅผ ๊ฐ์ง ์ฐธ์กฐ ํ์ ์ ๋๋ค. ์ฐธ์กฐ ํ์ ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ๋ณต์ก์ฑ์ ์ ๋ฐํ๊ณ ์ฝ๋๋ฅผ ์์ธกํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ๋ณ๊ฒฝํ ์ ์๋ ๊ณต์ ์ํ๋ ์ค๋ ๋ฉ ๋ฌธ์ ๋ ์ผ์ผํต๋๋ค. ๋ฐ๋ผ์ ์์คํ ์ ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ์ ์ง ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํํํ ๋ ๊ตฌ์กฐ๋ฅผ ๊ถ์ฅํ๋ ์ด์ ์ ๋๋ค. โ