IoC

โ€œDonโ€™t call me, Iโ€™ll call youโ€

๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ํˆด์ด ์ œ์–ด๊ถŒ์„ ๊ฐ€์ ธ ํด๋ž˜์Šค๊ฐ€ ์˜์กด ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒƒ๋“ค์ด ์•„๋‹ˆ๋ผ ์ฃผ์ž…๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

โ†’ ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์ฃผ์ฒด๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ

  • IoC๊ฐ€ ์ ์šฉ๋œ ๊ฒฝ์šฐ, ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ํŠน๋ณ„ํ•œ ๊ด€๋ฆฌ ์œ„์ž„ ์ฃผ์ฒด ์—๊ฒŒ ๋งก๊ธด๋‹ค

    • ์ด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์ปจํŠธ๋กคํ•˜๋Š” ์ฃผ์ฒด๋Š” ๋‹ค๋ฅธ ์ฃผ์ฒด๊ฐ€ ๋œ๋‹ค

    • ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ์ œ์–ด๊ถŒ์„ ๋‹ค๋ฅธ ์ฃผ์ฒด์—๊ฒŒ ๋„˜๊ธฐ๋Š” ๊ฒƒ ์„ ์ œ์–ด์˜ ์—ญ์ „, Inversion of Control ์ด๋ผ๊ณ  ํ•œ๋‹ค

  • ApplicationContext์™€ BeanFactory(ApplicationContext๋Š” BeanFactory๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค) ์ธํ„ฐํŽ˜์ด์Šค ๋•๋ถ„์— Bean์œผ๋กœ ์ง€์ •ํ•œ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šค๋กœ ๋“ฑ๋กํ•ด์ฃผ์–ด ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์˜์กด๊ด€๊ณ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ด Bean(์Šคํ”„๋ง IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌ ํ•˜๋Š” ๊ฐ์ฒด)์œผ๋กœ ๋“ฑ๋ก๋œ ์ธ์Šคํ„ด์Šค๋“ค์„ ์ „๋‹ฌํ•ด์ฃผ์–ด ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection)์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

Last updated