-
[Spring] ์คํ๋ง IoC๊ฐ๋ฐ์ ์ ๋ฆฌ๋ ธํธ/JAVA 2022. 1. 22. 18:31
IoC๋?
:Inversion Of Controller ์ฆ, ์ ์ด๊ถ์ ์ญ์
์ด๋ค ๊ฐ์ฒด๊ฐ ์ฌ์ฉํ๋ ์์กด ๊ฐ์ฒด๋ฅผ ์ง์ ๋ง๋ค์ด ์ฌ์ฉํ๋๊ฒ ์๋๋ผ, ์ฃผ์ ๋ฐ์ ์ฌ์ฉ๋ฐ๋ ๋ฐฉ๋ฒ.
์ฝ๋๋ฅผ ์์๋ก ์ค๋ช ํด๋ณด์.
์ด๋ค ๊ฐ์ฒด(BookService)๊ฐ ์ฌ์ฉํ๋ ์์กด ๊ฐ์ฒด(BookRepository)๋ฅผ ์ง์ ๋ง๋ค์ด ์ฌ์ฉํ๋๊ฒ ์๋๋ผ,
์ด๋ค ์ฅ์น(์์ฑ์)๋ฅผ ์ด์ฉํด์ ์ฃผ์ ์ ๋ฐ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ IoC๋ผ๊ณ ํ๋ค. ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์คํ๋ง์์ ์ ๊ณตํด์ฃผ๊ณ ์๋ค.
์ง์ ๋ง๋ค์ด ์ฐ๋ ์์ IoC ์ปจํ ์ด๋
- Bean: Spring IoC๊ฐ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
- Container: Bean๋ค์ ๋ด๊ณ ์๋ ์ ์ฅ์
- DI(Dependency Injection): ์์กด์ฑ ์ฃผ์ . ๊ฐ์ฒด๋ฅผ ์ธ๋ถ๋ก๋ถํฐ ์ฃผ์ ํด์ฃผ๋ ์์ ์ DI๋ผ๊ณ ํ๋ค. DI๋ IoC์ ์ผ์ข .
- IoC ์ปจํ ์ด๋
- Object์ ์์ฑ๊ณผ ๊ด๊ณ์ค์ , ์ฌ์ฉ, ์ ๊ฑฐ๋ฑ์ ์์ ์ ๋์ ํด์ค๋ค. IoC ์ปจํ ์ด๋๋ Bean์ ์ ์ฅํ๋ค๊ณ ํ์ฌ, BeanFactory๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
- Bean ์ค์ ์์ค๋ก๋ถํฐ Bean ์ ์๋ฅผ ์ฝ์ด๋ค์ด๊ณ , Bean์ ๊ตฌ์ฑํ๊ณ ์ ๊ณตํ๋ค.
- ์ค์ฝํ
- ์ฑ๊ธํค: ํ๋๋ง ๋ง๋ค์ด์ ์ฌ์ฉ. ํจ์จ์
- ํ๋กํ ํ์ : ๋งค๋ฒ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ
- BeanFactory: IoC ์ปจํ ์ด๋์ ๊ฐ์ฅ ์ต์์์ ์๋ ์ธํฐํ์ด์ค.
- ApplicatinContext: BeanFactory๋ฅผ ์์๋ฐ์, ์ค์ง์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์ธํฐํ์ด์ค. ๋ค์ํ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด์๋ค.
์ฅ์
: Spring IoC ์ปจํ ์ด๋์ ๋ฑ๋ก๋์๋ Bean๋ค์..
- ์์กด์ฑ ๊ด๋ฆฌ
- ์ค์ฝํ
- ๋ผ์ดํ ์ฌ์ดํด ์ธํฐํ์ด์ค
๋ฅผ ์ ๊ณตํ๋ค.
Bean
: ์คํ๋ง ์ปจํ ์ด๋์ ์ํด ์์ฑ๋๋ ์๋ฐ์ "๊ฐ์ฒด"
Bean ๋ฑ๋ก ๋ฐฉ๋ฒ
'๊ฐ๋ฐ์ ์ ๋ฆฌ๋ ธํธ > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] Spring๊ณผ SpringBoot ๊ฐ๋ , ์ฐจ์ด (0) 2022.02.06 [Spring] ์คํ๋ง AOP (0) 2022.01.24 [Spring] ์ฝ๋๋ก ์์๋ณด๋ ์คํ๋ง IoC (0) 2022.01.22 [Spring] ์คํ๋ง Life Cycle (0) 2022.01.17 [Java] ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ - Stack & Heap (0) 2022.01.13