[iOS] ์์กด์ฑ ์ฃผ์
(Dependency Injection, DI) ์ด๋ ? Swift ์์ ์ ์ฉํ๊ธฐ, ์์กด ๊ด๊ณ ์ญ์ ๋ฒ์น
์์กด์ฑ ์ฃผ์
์ ๊ณ ๋ฏผํ๊ฒ ๋ ๊ณ๊ธฐ ํ๋ ์์ํฌ ๋ด์์ ๋ค๋ฅธ add-on ํ๋ ์์ํฌ api๋ฅผ ์ฌ์ฉํ ๋, dynamic ํ๋ ์์ํฌ๋ ํ๋ก์ ํธ ๋ด embed ํ ๊ฒฝ์ฐ, ํด๋น api๊ฐ ์ ์ ํธ์ถ๋์ง๋ง, embed ํ์ง ์๊ณ ํธ์ถํ๋ ๊ฒฝ์ฐ, ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ, ์ด ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๊ตฌํ์ด ํ์ํ๋ค. ์์กด์ฑ ์ฃผ์
(DI, Dependency Injection) ์ด๋? ๋จผ์ , ๋ ๋จ์ด๋ฅผ ๋ฏ์ด์ ๋ณด๋ฉด, ์์กด์ฑ(Dependency) ์ด๋ ? ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด ์ฌ์ด์ ์์กด ๊ด๊ณ๊ฐ ์๋ค๋ ๊ฒ์ ๋งํ๋ค. ์ฝ๋๋ก ์ดํดํด๋ณด์. ์ฆ, ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํด๋์ค A๊ฐ B๋ฅผ ์ง์ ์์ฑํ๊ณ ์ฌ์ฉํ๋ค๋ฉด, 'A ๊ฐ์ฒด๊ฐ B ๊ฐ์ฒด๋ฅผ ์์กดํ๋ค' ๋ผ๊ณ ํ๋ค. ๋ฌด์จ ๋ง์ด๋ ์ ์ฝ๋์ B ํด๋์ค name ๋ณ์๋ฅผ name2๋ก ๋ณ๊ฒฝํด๋ณด๋ฉด, ๋ฐ๋ก A ํด๋์ค..