๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

MVVMํŒจํ„ด

(1)
[iOS] ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection, DI) ์ด๋ž€ ? Swift ์—์„œ ์ ์šฉํ•˜๊ธฐ, ์˜์กด ๊ด€๊ณ„ ์—ญ์ „ ๋ฒ•์น™ ์˜์กด์„ฑ ์ฃผ์ž…์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ ๋‹ค๋ฅธ add-on ํ”„๋ ˆ์ž„์›Œํฌ api๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, dynamic ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด embed ํ•œ ๊ฒฝ์šฐ, ํ•ด๋‹น api๊ฐ€ ์ •์ƒ ํ˜ธ์ถœ๋˜์ง€๋งŒ, embed ํ•˜์ง€ ์•Š๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ์ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„์ด ํ•„์š”ํ–ˆ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…(DI, Dependency Injection) ์ด๋ž€? ๋จผ์ €, ๋‘ ๋‹จ์–ด๋ฅผ ๋œฏ์–ด์„œ ๋ณด๋ฉด, ์˜์กด์„ฑ(Dependency) ์ด๋ž€ ? ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด ์‚ฌ์ด์— ์˜์กด ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ฝ”๋“œ๋กœ ์ดํ•ดํ•ด๋ณด์ž. ์ฆ‰, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํด๋ž˜์Šค A๊ฐ€ B๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, 'A ๊ฐ์ฒด๊ฐ€ B ๊ฐ์ฒด๋ฅผ ์˜์กดํ•œ๋‹ค' ๋ผ๊ณ  ํ•œ๋‹ค. ๋ฌด์Šจ ๋ง์ด๋ƒ ์œ„ ์ฝ”๋“œ์˜ B ํด๋ž˜์Šค name ๋ณ€์ˆ˜๋ฅผ name2๋กœ ๋ณ€๊ฒฝํ•ด๋ณด๋ฉด, ๋ฐ”๋กœ A ํด๋ž˜์Šค..

๋ฐ˜์‘ํ˜•