728x90
728x90
ํ์ต ๋ชฉํ
1. '์์กด์ฑ ์ฃผ์ ' ๊ธฐ๋ณธ ๊ฐ๋ ์ดํด
2. ์คํ๋ง ์ปจํ ์ด๋์ ApplicationContext ์ดํด
3-1. XML ํ์ผ์ ์ด์ฉํ ์์กด์ฑ ์ฃผ์ (DI) ์ค์ ๋ฐฉ๋ฒ
3-2. Annotation์ ์ด์ฉํ ์์กด์ฑ ์ฃผ์ (DI) ์ค์ ๋ฐฉ๋ฒ
3-3. Java๋ฅผ ์ด์ฉํ ์์กด์ฑ ์ฃผ์ (DI) ์ค์ ๋ฐฉ๋ฒ
4. Bean ๊ฐ์ฒด์ Scope์ LifeCycle ์ดํด
์์กด์ฑ ์ฃผ์ (DI)
๋ฐฐ๊ฒฝ
- ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ ์, ํ๋์ ๊ธฐ๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ํํ๊ธฐ ์ํด ์ฌ๋ฌ ์ปดํฌ๋ํธ ์กฐํฉ์ผ๋ก ๊ตฌํ
- DB ์ปดํฌ๋ํธ, GUI ์ปดํฌ๋ํธ, ์ธ๋ถ ์ ์ ์ปดํฌ๋ํธ ๋ฑ...
- ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ํตํฉ ์ ์์กด ๊ด๊ณ ์ฃผ์ ๋์์ธ ํจํด์ด ๋งค์ฐ ํจ๊ณผ์
์ ์
- ๊ฐ์ฒด ๊ฐ์ ์์กด ๊ด๊ณ๋ฅผ ์์ฑํ๋ ๊ฒ
- ์คํ๋ง ํ๋ ์์ํฌ๋ ๋ฐํ์ ์ ์ฌ์ฉํ ๊ฐ์ฒด๋ค์ ์์กด ๊ด๊ณ ๋ถ์ฌ
- ๊ฐ์ฒด ๊ฐ ๊ฒฐํฉ๋ ๋ฎ์ถค
- IoC (Inversion of Control)
- ์ญ์ ์ ์ด
- ์ธ์คํด์ค๋ฅผ ์ ์ดํ๋ ์ฃผ๋๊ถ์ด ์ญ์
- ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ๋ ์ธ์คํด์ค ์์ฑ๊ณผ ์์กด ๊ด๊ณ ์ฐ๊ฒฐ์ ๊ฐ๋ฐ์์ ์์ค ์ฝ๋๊ฐ ์๋ DI ์ปจํ ์ด๋๊ฐ ๋์ ํด ์ฃผ๊ธฐ ๋๋ฌธ์ ์ ์ด๊ฐ '์ญ์ ๋์๋ค'๊ณ ์ ์
- IoC ์ปจํ ์ด๋ : ์ธ์คํด์ค์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ ๋ฐ ์์กด ๊ด๊ณ ์ฃผ์ ์ฒ๋ฆฌ
์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์์ ์์กด ๊ด๋ฆฌ
- MemberSampleMain์ด MemberService๋ฅผ new๋ก ์์ฑ
- MemberService๊ฐ MemberDAO๋ฅผ new๋ก ์์ฑ
- ๊ฐ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ด์ฉํ๋ ํํ (Main → Service → DAO)
DI ์ปจํ ์ด๋๋ฅผ ํ์ฉํ ์ ํ๋ฆฌ์ผ์ด์ - 1 (new ์ฐ์ฐ์ ์ ๊ฑฐ)
- ๊ฐ MemberService, MemberDAO ์ธ์คํด์ค๋ DI ์ปจํ ์ด๋๊ฐ ์์ฑ ๋ฐ ๊ด๋ฆฌ
- ์ฆ MemberDAO ์ธ์คํด์ค๋ฅผ MemberService์ ์์กด ๊ด๊ณ ์ฃผ์
DI ์ปจํ ์ด๋๋ฅผ ํ์ฉํ ์ ํ๋ฆฌ์ผ์ด์ - 2 (์ธํฐํ์ด์ค ๊ธฐ๋ฐ)
- MemberService, MemberDAO๋ฅผ ์ธํฐํ์ด์ค๋ก ****ํจ
- ๊ตฌํ ํด๋์ค๋ ์ธํฐํ์ด์ค ์ด๋ฆ์ Impl์ ๋ง๋ถํ
728x90
๋ฐ์ํ