Community

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๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์œ  ์ƒํƒœ๋ฅผ ๊ฐ€์ง„ ์ฐธ์กฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค. ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์€ ๋ณต์žก์„ฑ์„ ์œ ๋ฐœํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์œ  ์ƒํƒœ๋Š” ์Šค๋ ˆ๋”ฉ ๋ฌธ์ œ๋„ ์ผ์œผํ‚ต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ํ‘œํ˜„ํ•  ๋•Œ ๊ตฌ์กฐ๋ฅผ ๊ถŒ์žฅํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. โœ…

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค