1. IoC Container ( ์คํ๋ง ์ปจํ ์ด๋ )
์์ ์ดํด๋ณธ IoC๋ "์ ์ด์ ์ญ์ ", IoC Container์๊ฒ ์ ์ด์ ๊ถํ์ ๋๊ธด๋ค๊ณ ์ค๋ช
์ ํ์๋ค. IoC Container๋ ๊ฐ์ฒด๋ฅผ ์์กด์ฑ ์ฃผ์
์ ์์ผ์ฃผ๊ธฐ ์ํ ๊ฐ์ฒด๋ค์ ๋ชจ๋ ์ปจํ
์ด๋์ ๋ฃ์ด์ ๋ณด๊ด์ ํ๊ฒ ๋๋ค. ํด๋น ์ปจํ
์ด๋๋ ๋ด๋ถ์ ๊ฐ์ฒด๋ค์ ๊ด๋ฆฌํฉ๋๋ค. ๊ณผ์ ์ผ๋ก๋ ๋จผ์ ์ปจํ
์ด๋์ ์ํด ์ธ์คํด์คํ ๋๊ณ , ์ธ์คํด์คํ ๋ ๊ฐ์ฒด๋ค์ ์์กด์ฑ ์ฃผ์
์ด ์๋์ผ๋ก ๋ฉ๋๋ค.
์ด๋ ๋ฏ, IoC Container๋ Bean(๊ฐ์ฒด) ๋ค์ ๊ด๋ฆฌํ๋ฉฐ, ์๋์ผ๋ก ์์กด์ฑ์ ์ฃผ์
ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
* IoC Container๊ฐ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด๋ค์ ๋ชจ๋ Bean์ด๋ค.
- IoC ์ปจํ ์ด๋๋ ์๋ฐ์ ๊ฐ์ฒด๋ก์จ ์กด์ฌํ๋ค.
- ๋ํ์ ์ธ ๊ตฌํ์ฒด๋ก๋ BeanFactory ์ ์ด๋ฅผ ํ์ฅํ ์ธํฐํ์ด์ค์ธ ApplicationContext ๊ฐ ์๋ค.
- ApplicationContext๋ Bean ๊ด๋ฆฌ ์ธ์๋ ๋ค์ํ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณต ํ๊ณ , ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ง์ด ์ฌ์ฉ๋จ
* ApplicationContext ๋ฐ IoC ์ปจํ ์ด๋๋ฅผ ์ด๋ฃจ๋ ๊ตฌํ์ฒด๋ค์ ๋ํด์๋ ๋ค์ ์ฅ์ ๋ค๋ฃฐ ์์ ์ด๋ค.
2. Bean
IoC Container์์ ๊ด๋ฆฌ๋๋ ๊ฐ์ฒด ์ด๋ค. ํด๋น Bean์ ํ์์ ๋ฐ๋ผ ์ธ์คํด์คํ ๋์ด ๊ฐ์ฒด๋ก์จ ์ฌ์ฉ์ด ๋๋ค. ๋ํ, ์ธ์คํด์คํ ๋ Bean ๊ฐ์ฒด๋ IoC Container์ ์ํด ์๋์ผ๋ก ์์กด์ฑ ์ฃผ์
์ด ๋๋ค.
์ด๋ฌํ Bean๋ค์ XML ๊ตฌ์ฑํ์ผ ๋ฐ ์ ๋ํ
์ด์
๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๋ก ์ค์ ์ด ๋๋ค. ์ด๋ฅผ ํตํด IoC Container๋ ์ด๋ค ๊ฐ์ฒด๊ฐ ํ์ํ๊ณ , ์ด๋ค ์์กด์ฑ์ ์ฃผ์
ํด์ผ ํ ์ง ์ ์ ์๋ค.
3. IoC ์ปจํ ์ด๋ Bean ๋ฑ๋ก
- IoC ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๊ฒ ๋ ๊ฐ์ฒด๋ค์ Bean์ผ๋ก ๋ง๋๋ ๊ฒ์ Bean ๋ฑ๋ก์ด๋ผ๊ณ ํ๋ค.
- IoC ์ปจํ ์ด๋๋ Bean์ ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ Bean์ผ๋ก ๋ง๋ค์ด์ง ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๊ฐ ํ์ํ๋ค.
- IoC ์ปจํ ์ด๋๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ค์ฌ, ๊ฐ์ฒด๋ฅผ Bean์ผ๋ก ๋ฑ๋ก์ ํ๋ค. IoC ์ปจํ ์ด๋์์ ์ด๋ฃจ์ด์ง๋ ๊ณผ์ ์ด๋ค.
- ์ฌ๊ธฐ์ ๋งํ๋ ๋ฉํ๋ฐ์ดํฐ๋ ํฌ๊ฒ ์ ๋ํ ์ด์ ๋ฐฉ์๊ณผ XML ๋ฐฉ์์ด ์กด์ฌํ๋ฉฐ ๊ทธ ๋ฐ์๋ ๋ ์กด์ฌํ๋ค.
* IoC ์ปจํ
์ด๋๊ฐ Bean ์ ๋ณด๊ฐ ๋ค์ด์๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์์ธํ ๋ฐฉ์์ ๋ค์์ฅ ์์ ๋ค๋ฃฐ ์์ ์ด๋ค.
์ฐธ์กฐ ( Spring ๊ณต์ ๋ฌธ์ )
https://docs.spring.io/spring-framework/reference/core/beans/introduction.html
Introduction to the Spring IoC Container and Beans :: Spring Framework
This chapter covers the Spring Framework implementation of the Inversion of Control (IoC) principle. Dependency injection (DI) is a specialized form of IoC, whereby objects define their dependencies (that is, the other objects they work with) only through
docs.spring.io
'๐ ๏ธBackend > ๐ณSpring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Data JPA] JPA Entity ํด๋์ค์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ํ์ํ ์ด์ (0) | 2024.12.30 |
---|---|
[Spring Framework] IoC ์ปจํ ์ด๋ ๋์ ์๋ฆฌ (0) | 2024.11.14 |
[Spring MVC] ์์ฒญ๊ณผ ์๋ต์ ๋ํ ๋์ ์๋ฆฌ (1) | 2024.11.05 |
[Spring Framework] IoC & DI ๊ฐ๋ ์ดํด ํ๊ธฐ (0) | 2024.10.20 |
[Spring Framework] Spring & Spring Framework ์ฐจ์ด (0) | 2024.10.19 |