Last updated
Last updated
Spring Framework์ ํต์ฌ ๊ฐ๋ 3๊ฐ์ง์์ค ์ฝ๋์ ๋ณต์ก๋๋ฅผ ์ค์ด๊ณ , ํจ์จ์ ๋์ด๊ณ , ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด Spring์์๋ ๋ค์์ 3๊ฐ์ง๋ฅผ ์ด์ฉํ๋ค.
IoC Container
IoC๋ Inversion of Control(์ ์ด ๋ฐ์ )์ ์ถ์ฝ์ด์ด๋ค.
A, B, C, D ๋ค ๊ฐ์ ํด๋์ค๊ฐ ์๊ณ ๋ค์์ ๊ด๊ณ๋ฅผ ๊ฐ๋๋ค๊ณ ํ์.
๊ฒฐํฉ์ฑ์ด ๋์ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ A ์์์ B๋ฅผ ์์ฑํ๋ ํ์์ผ๋ก ๊ฒฐํฉ๋๊ธฐ ๋๋ฌธ์ A-B-C-D
์์๋ก ์์ฑ๋๋ค.
๊ฒฐํฉ์ฑ์ด ๋ฎ์(์์กด์ฑ ์ฃผ์
์ ์ด์ฉํ๋) ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ B๊ฐ ๋จผ์ ์์ฑ๋๊ณ A์ ์ด๋ฅผ ์ฃผ์
ํ๋ ๋ฐฉ์์ผ๋ก ๊ฒฐํฉ๋๊ธฐ ๋๋ฌธ์ D-C-B-A
์์๋ก ์์ฑ๋๋ค.
๋ฐ๋ผ์ ์ ์ด์ ํ๋ฆ์ด ๋ค์งํ๋ค
๋ ์๋ฏธ์์ Inversion of Control์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ค.
IoC Container์ IoC Container์ ์ํด ์์ฑ, ๊ด๋ฆฌ๋๋ ์ธ์คํด์ค๋ฅผ Bean์ด๋ผ๊ณ ํ๋ค.
IoC Container๋ Bean์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋จ ํ๋๋ง ์์ฑ๋๋๋ก ํ๋ ๋์์ธ ํจํด์ ๋งํ๋ค.
IoC Container ๋ด๋ถ์ Bean๋ค์ ๋๋ถ๋ถ Singleton์ผ๋ก ๊ด๋ฆฌ๋๋ค. ์ฆ, ํ ๋ฒ๋ง ์์ฑ๋๊ณ ์ด๊ฒ์ getter๋ฅผ ํตํด ์ฌ๋ฌ ๊ณณ์์ ์ฃผ์ ๋ฐ์ ์ด์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ด์๋๋ค.