๊ทธ๋์ ํ๋ฒ ์๊ธฐ๋ผ๋ ๋๋ ๋ณด๋ฉด ์ด๋จ๊น ํฉ๋๋ค.
injection์ ์ฃผ์
์ผ๋ก ํ ๊ฒ์ ๋ง์กฑํ๊ณ ์.
dependency๋ฅผ ๋ฌด์์ผ๋ก ํ๋ฉด ์ข์์ง...
์ฌ์ ์ ๊ฒ์ํ๋
dependency [dipรฉndษnsi]
1 ๋ช
์ฌ
* (๋ถ๊ฐ์ฐ) ์์กด (์ํ)
* ์ข
์๋ฌผ; ๋ถ์ ๊ฑด๋ฌผ, ๋ณ๊ด
* ์๊ตญ, ๋ณดํธ๋ น
* ์์์ด ๋ธ๋ฆผ
* ์์กด์ฆ, ์ค๋
(์ฆ)
์ด๋ ๊ฒ ๋์ค๋ค์.
์ข
์ ๊ฐ์ฒด ์ฃผ์
์ด๋ผ๋ ํํ์ ๊ตฌ์ฒด์ ์ด๊ธฐ๋ ํ์ง๋ง ์ด์ง ๋ฉ์ด ์๋ค๋ ์๊ฐ๋ ๋ค๊ณ ๊ณผ์ฐ ๊ฐ์ฒด๋ก ํ์ (?)ํ๋ ๊ฒ์ด ์ข์์ง๋ ๋ชจ๋ฅด๊ฒ ์ต
๋๋ค. ๋ฌด์๋ณด๋ค ์ข
์์ด๋ผ๋ ํํ์ด ๊ฑธ๋ฆฌ๋๋ฐ ์ค ์ธ๊ณ์์๋ ์ฃผ๋ ๊ฒ์ ๋ถ์๋ ๊ฒ์ด ์ข
์ํ์ง๋ง ๊ฐ์ฒด์งํฅ ์ธ์์์๋ ์ฃผ๋ ๊ฒ์ด ๋ถ์
๋ ๊ฒ์ ์ข
์๋๋ ๋ฏ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ป์์ ์ข
์ ๊ฐ์ฒด๋ผ๊ณ ํ ๋ ์ด์ง๋ฌ์์ฆ์ด ์ด์ง ์๊ธฐ๋๊ตฐ์.
๋์ ์๊ฐํด๋ณธ ๊ฒ์..
์์กด ๊ด๊ณ ์ฃผ์
๋ถ์๋ฌผ ์ฃผ์
์๋ง๋ ๊ด๋ จ ๋ ผ์๊ฐ ์ด์ ์๋ ์์์ ๋ฒ ํ๋ฐ... ์ด๋์ ๋ณธ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ... ๊ทธ๋ฐ๋ฐ ๋ชป ์ฐพ๊ฒ ๋ค์. ^^
์์กด ๊ด๊ณ ์ฃผ์
๋ถ์๋ฌผ ์ฃผ์
๊ทธ๋ ๋ค๋ฉด. ์ด๋ค init ๊ณผ์ .. ์ฆ ์ด๋ค setup ๊ณผ์ ์ด๋ผ๊ณ ๋ณด์๋ ๋๋๊ฒ ์๋๊น์.?
๊ทธ๋ฐ ์
์ฅ์์ ์ ๊ทผํ๋ฉด ๋ถ์๋ฌผ ์ฃผ์
or ๋ถ์๋ฌผ ์ค๋น or ๊ด๋ จ๊ฐ์ฒด ์ฐ๊ฒฐ or ๊ด๋ จ instance ์ฐ๊ฒฐ
๋ญ ์ด์ ๋๋ผ๊ณ ์๊ฐ์ด ๋ค๊ธฐ๋ ํ์ง๋ง,
์ด๊ฑด ๋๋ฌด application ์ฌ์ฉํ๋ ์
์ฅ์์๋ง ๋ณธ๊ฒ ๊ฐ์์..
์ฒ์ ์ค๊ณ์์ ์๋๋ฅผ ํ์ํ ์๋ ์๋ ์ฉ์ด๋ผ๋ ์๊ฐ์ด ๋ค๊ธฐ๋ ํฉ๋๋ค.
๋ค๋ฅธ ๋ถ๋ค์ ์๊ฒฌ๋ ๋ฃ๊ณ ์ถ๊ตฐ์...
PS.
๊ณ์ ์ฌ๋ผ์ค๋๊ธ ๋ณด๊ณ ๋ง ์๋ค๊ฐ..
์ ์๊ฐ์ ์ฌ๋ฆฌ๊ณ ๊นจ์ด์ ธ์ผ ๋ณํ๊ฐ ์์๊ฒ ๊ฐ์์์.. ^^
On 6์8์ผ, ์ค์ 7์43๋ถ, Toby Lee <tobyi...@gmail.com> wrote:
> Injection์ ์ก์ฒด๋ฅ๋ ์ฝํ, ์ถ์์ ์ธ ๋ด์ฉ์ ๋ฃ๋๋ค๊ณ ํ ๋ ์ฌ์ฉํ์ง, ์ด๋ค ์
์ ์๋ ๋ฌผ์ฒด๋ฅผ์ง์ด๋ฃ๋๋ฐ ์ฌ์ฉํ๋ ์ฉ์ด๊ฐ
> ์๋๋๋ค. ๊ทธ๋ฐ๋ฉด์์ ๊ฐ์ฒด๊ฐ ์ฃผ์
๋์๋ค๋ ๋ง์ ์ธ์ด์ ์ผ๋ก ๋ฐ๋ฅธ ํํ์ด ์๋์ฃ . ๋ถ์๋ฌผ๋ ๋ง์ฐฌ๊ฐ์ง ์
๋๋ค.
> ๊ฒ๋ค๊ฐ ์๋ฐ์์๋ ๊ฐ์ฒด๊ฐ ์ด๋ ์ง์ ๋ค์ด๊ฐ์ง๋ ๊ฒ๋ ์๋์ฃ . ๋จ์ง ๋ ํผ๋ฐ์ค๋ง ๋๊ฒจ์ง๋ ๊ฑฐ์ฃ . ๊ฐ์ฒด๋ฅผ ์ง์ ๊ทธ ์ผ๋ถ๋ฅผ ์ฐ๋์ฐ๋ ๋ฃ์ด์ค๊ฒ
> ์๋๋ผ๋ฉด ๊ฐ์ฒด ์ฃผ์
์ด๋ ํํ์ ๋ถ๋ช
์ด์ํฉ๋๋ค. ์ ๋ ๊ฐ๋
์ด ๋ถ๋ช
ํ dependent object injection์ด ์๋๋ผ, ์ถ์์ ์ธ
> ํํ์ธ dependency injection์๋ฆฌ๊ณ ์ผ๋์ง๋ ์๊ฐํด ๋ณผ ํ์๊ฐ ์์ต๋๋ค.
>
> ์์กด์ฑ ์ฃผ์
์ด ๊ทธ๋๋ง ์ ๋จ์ด์ ์ฉ์ด์ ๊ฐ๋
์ ์ถฉ์คํ ๋ฌด๋ํ ๋ฒ์ญ์ด๋ผ๊ณ ๋ณด์
๋๋ค.
> ๋ค๋ง ๊ฐ๋
์ ์ข ๋ ๋ช
ํํ๊ฒ ํ๊ธฐ ์ํด์ ์๋๋ ๋ค๋ฅธ ๋ฒ์ญ์ฉ์ด๋ฅผ ์ฐฝ์์ ์ผ๋ก ๋ง๋ค ์๋ ์๋ค๊ณ ๋ด
๋๋ค.
>
> 2009/6/8 Toby Lee <tobyi...@gmail.com>
>
>
>
> > UML ํ๊ธ์ฉ์ด๋ฅผ ๋ณด๋ฉด dependency๋ฅผ ์ข
์์ด๋ผ๊ณ ๋ง์ด ์ฐ๋๊ตฐ์.์ข์ ๋ฒ์ญ์ฉ์ด๋ผ๊ณ ๋ณด์ด์ง ์์ต๋๋ค. ์คํ๋ง์ด UML๋ ์๋๊ณ ..
>
> > 2009/6/8 ์์ํ <ahnyoung...@gmail.com>
--
In the midst of the street of it, and on either side of the river, was there the tree of life,
which bare twelve manner of fruits, and yielded her fruit every month: and the leaves of the tree were for the healing of the nations.
Gir won Lee
Dept. of Bioinformatics, Bioneer Corporation
URL: http://www.bioneer.co.kr
http://www.thegreatgoodplace.com
E-mail: leegw700@{bioneer.co.kr|ssu.ac.kr|gmail.com}
Tel: 82-42-930-8755
Phone: 82-10-3323-0868
--
๋งค์ผ ํ๋ณตํ ์๊ฐ ๋์๊ธธ ๋ฐ๋๋๋ค...^^
DI๋ผ๋ ๋จ์ด์ ๋ํด์ ์ฝ๋งค์ด์ง ์๋๋ค๋ฉด์์กด์ฑ ์ฐธ์กฐ๋ผ๋ ๋ง์ ์ด๋ ํ๊ฐ์??
DENPENDENCY
1. ์์กด์ฑ :
* ์ฐ๋ฆฌ๋ง๋ก ์ด์ํ๋ค.
* ์ ๋ป์ ๋ฌด๋ฆฌ ์์ด ํํํ๋ค.
* ์ด๋ฏธ ๋ง์ด ์ฐ์ธ๋ค.
2. ๋ถ์๋ฌผ
* ์ด๊ฐ์ด ์ข๋ค.
* Injection์ด ์ถ์์ ์ธ ๊ฒ๊ณผ ๊ฐ์ด ์ฐ์ด๋ ๋จ์ด์ด๋ฏ๋ก ์ด์ธ๋ฆฌ์ง ์๋๋ค.
* ์ค๊ณ ์๋๋ฅผ ํผ์
3. ์์กด ๊ด๊ณ
* ๊ด๊ณ๋ฅผ ์ฃผ์
ํ๋ค๋ ๊ฑด ์ข...
* ์ข์ ๊ฒ ๊ฐ๋ค.
INJECTION
1. ์ฃผ์
* ๋ถ์ ์ ์ธ ์๊ฒฌ ์์.
2. ์ฝ์
* Injection์ ์ฝ์
์ผ๋ก ํด์ํด๋ ๋ฌด๋ฆฌ ์๋ค.
* ์ข์ ์๊ฒฌ์ด๋ค.
์ ์๊ฐ์ dependency๊ฐ ๋ฌด์์ ๋ปํ๋ ์ง ํ์
ํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ณดํต y๋ก ๋๋๋ฉด ์ด๋ค '์ฑ์ง'์ด๋ 'ํน์ฑ' ๋๋ ๊ทธ ํน์ฑ์ ๋๋ ๊ฒ์ ์๋ฏธํ๋๋ฐ์.
ํฌ๊ฒ ๋๊ฐ์ง๋ก ์๊ฐํด๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐ์ ์ injection์ ๋ฐ๋ ๋น์ ์ด๋ค ์์กดํ๋ ํน์ฑ์ ๋ถ์ฌํ๋ค๋ ์๋ฏธ๋ก ๋ณผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด A ๊ฐ์ฒด๊ฐ B ๊ฐ์ฒด์
์ข
์๋์ด B ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค๋ฅผ setting ํ๋ ์ํฉ์ ๋ณผ ๋ 'A์ ๋ถ์ฌ๋๋ ํน์ฑ'์ ์ง์นญํ๋ ๊ฒ์ด์ฃ .
๋๋ฒ์งธ๋ injection ๋๋ ์ด๋ค ๊ฒ์ ๊ฐ๋ฆฌํค๋ ์ฉ์ด๋ก dependency๊ฐ ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ๋ A์ setting
๋๋ B์ ๋ ํผ๋ฐ์ค๋ฅผ ์๋ฏธํฉ๋๋ค.
๋๋ฒ์งธ๋ ์๋ฏธ๋ ๋ ๊ฐ์ง๋ก ๋๋๋๋ฐ์. injection ๋๋ ๊ฒ์ด ๊ฐ๋
์ ์ธ ์์ค์ ๊ฒ์ด๋ (์์กด์ฑ, ์์กด ๊ด๊ณ) ์๋๋ฉด ๊ตฌ์ฒด์
์ธ ๊ฒ์ด๋ (์๋ฅผ ๋ค๋ฉด ๋ถ์๋ฌผ, ๊ฐ์ฒด) ...
์ ๋ ์ด๋ค ํน์ง์ ๋ถ์ฌํ๋ค๋ ๊ฒ์ด ๋ง๋ค๋ฉด "์์กด ํน์ฑ ์ฃผ์
" ์ ๋๊ฐ ์ข์ ๊ฒ ๊ฐ๊ณ ํ์์ ๊ฐ๋
์ ์ธ ์์ค์ ํํ์ด๋ผ๋ฉด "์์กด ๊ด
๊ณ ์ฃผ์
"์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก ๊ฐํ ์ฃผ์ฅ์ด ์๋๋ผ ๊ทธ๋ ๊ฒ ์ ํธํ๋ค๋ ์๋ฏธ์์... ^^
๊ทธ๋ฆฌ๊ณ Injection์ ์ฝ์
์ผ๋ก๋ ๋ณผ ์ ์๋ค๋ ์๊ฒฌ๋ ๋์๋๋ฐ ์ฝ์
์ ์ฐ๋ฆฌ๋ง ์ด๋ฏธ์ง๋์ ์ ์ ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ธ์ ์ผ
๋ก ์ฝ์
์ AOP์ Introduction์ ์ฐ๋ฆฌ๋ง ํํ์ ์ด์ธ๋ฆฌ์ง ์๋ ์ถ๋ค์. ์ด๋ค ๊ฐ์ฒด(target)์ ๊ฒฐํฉ ๊ฐ๋ฅํ ์ง์
(joinpoint)๋ค ์ค ํน์ ์ง์ ์ ์๋ผ์ (pointcut) ๋ฉค๋ฒ ๋ณ์๋ ๋ฉ์๋๋ฅผ ์ฌ๊ทธ๋จธ๋ ์ง์ด ๋ฃ๋
(introduction) ๊ฒ์ด๋ ๋ง์ด์ฃ .
(joinpoint)๋ค ์ค ํน์ ์ง์ ์ ์๋ผ์ (pointcut) ๋ฉค๋ฒ ๋ณ์๋ ๋ฉ์๋๋ฅผ ์ฌ๊ทธ๋จธ๋ ์ง์ด ๋ฃ๋
(introduction) ๊ฒ์ด๋ย
์ ๋ ์ด๋ค ํน์ง์ ๋ถ์ฌํ๋ค๋ ๊ฒ์ด ๋ง๋ค๋ฉด "์์กด ํน์ฑ ์ฃผ์ " ์ ๋๊ฐ ์ข์ ๊ฒ ๊ฐ๊ณ ํ์์ ๊ฐ๋ ์ ์ธ ์์ค์ ํํ์ด๋ผ๋ฉด "์์กด ๊ด
๊ณ ์ฃผ์ "์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
์์กด ๊ด๊ณ ์ฃผ์ ์ ์์ ์ค๋ช ํ์ง๋ง, '๊ด๊ณ'์์ฒด๋ฅผ ์ฃผ์ ํ๋ค๊ณ ๋ณด๊ธฐ๋ ์ด๋ ค์ธ ๋ฏ ํฉ๋๋ค
๋ณ๋ก ๋งฅ ๋น ์ง์ง ์์ต๋๋ค. ใ
ใ
์ ๋ ๋๋ฆ ๋์งธ๊ฐ๋ผ ํ๋ฉด ์๋ฌ์ ํ ๋ํํ... -_-);
> *์์กด ํน์ฑ*์ *์์กด์ฑ*์ ๋นํด ๊ณต๊ฐ๋ง ๋ญ๋นํ ๋ฟ ์๋ฏธ ๋ถ์ฌ๊ฐ ์๋ค ์๊ฐํฉ๋๋ค.
์ ๊ฐ ๋ถ๋ช
ํ ํ๊ณ ์ถ์๋ ๊ฒ์ dependency๊ฐ ๊ฐ์ฒด A์ ์๋ก ๋ถ์ฌ๋๋ ํน์ฑ์ ์๋ฏธํ๋์ง ์๋๋ฉด A์ ๋ถ์ฌ๋๋ ์ธ๋ถ์ ์ด
๋ค ๊ฒ์ ์๋ฏธํ๋์ง ์์ต๋๋ค. ๋ ํผ๋ฐ์ค๋ ์์ ์ธ์ฉํ์ ๊ธ์ ๋ณด๋ฉด ํ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๋ง์ '์์กด์ฑ'์ด๋ผ๋ ๋จ์ด๊ฐ ๋ปํ๋ ๊ฒ์ ๋์ถฉ ์ด๋ ๋ค๋ค์.
1 ๋ค๋ฅธ ๊ฒ์ ์์งํ์ฌ ์ํํ๊ฑฐ๋ ์กด์ฌํ๋ ์ฑ์ง.
* ๊ณผ๋ณดํธ๋ฅผ ๋ฐ๊ณ ์๋ ์์ด๋ ๋ถ๋ชจ์ ๋ํ ์์กด์ฑ์ด ๊ฐํ๋ค.
2 [์ฝํ]๊ธ๋จ ์ฆ์ ๋๋ฌธ์ ๊ณ์ํ์ฌ ์ฝ๋ฌผ์ ์ญ์ทจํ์ง ์์ผ๋ฉด ์ ๋๋ ์ํ.
๊ฒฐ๊ตญ ์์ ๊ตฌ๋ถ์์ ์ ์์ ํด๋นํฉ๋๋ค.
"๊ฐ์ฒด A๊ฐ ๊ฐ์ฒด B์ ์์กด์ฑ์ด ์๋ค"๋ ๋ง์ ์ฑ๋ฆฝ๋์ง๋ง
"๊ฐ์ฒด B๋ ๊ฐ์ฒด A์ ์์กด์ฑ์ด๋ค"๋ ๋ง์ ์๋ชป๋ ํํ์ด๋ผ๋ ๊ฑฐ์ฃ .
๋ง์ด๋ ๊ณ์ ๋ณํํ๋ ๊ฒ์ด๋ ์๋กญ๊ฒ ์ ์ํ๊ณ ์ฌ์ฉํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ฒ ์ง๋ง Spring In Action 2nd ๋ฒ์ญํ๋ฉด์ ๋ณํ๋ฅผ
์๋ํ๋ค๋ฉด ์ง๊ธ ๋ค์ ์ด์ํํ๋ ๊ฒ๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฑฐ๋ผ๊ณ ์ฌ๊ฒจ์ ธ์ ์ด๋ ๊ฒ ํ๋๋ฅผ ๋์ก์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ๋ณด๊ธฐ์ ์์กด ๊ด๊ณ ์ฃผ์
๋ ์๊น ์ผ๋ฏผ๋์ด Injection๊ณผ ๊ฐ์ด ์ฐ๋ ๊ฒ์ด ๊ฐ๋
์ ์ธ ๊ฒ์ด๋ผ๊ณ ํ์ ๊ฒ์ ์๊ฐํ๋ฉด ๋ง
์ด ๋์ง ์๋ ์ถ์ด์. ์ ํํ ํํํ๋ค๋ฉด ์์กด ๊ด๊ณ์ฑ ์ฃผ์
์ด ๋๋ ๊ฑฐ์ฃ .
On 6์8์ผ, ์ค์ 10์49๋ถ, ์์ํ <ahnyoung...@gmail.com> wrote:
> > ์ ๋ ์ด๋ค ํน์ง์ ๋ถ์ฌํ๋ค๋ ๊ฒ์ด ๋ง๋ค๋ฉด "์์กด ํน์ฑ ์ฃผ์
" ์ ๋๊ฐ ์ข์ ๊ฒ ๊ฐ๊ณ ํ์์ ๊ฐ๋
์ ์ธ ์์ค์ ํํ์ด๋ผ๋ฉด "์์กด ๊ด
> > ๊ณ ์ฃผ์
"์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
>
> ๋งฅ๋น ์ง๊ฒ ํ๋ ์๊ฒฌ ๊ฐ์ ์ ์ ์ฃผ์ ํ์ง๋ง... :)
>
> *์์กด ํน์ฑ*์ *์์กด์ฑ*์ ๋นํด ๊ณต๊ฐ๋ง ๋ญ๋นํ ๋ฟ ์๋ฏธ ๋ถ์ฌ๊ฐ ์๋ค ์๊ฐํฉ๋๋ค.
> ์์กด ๊ด๊ณ ์ฃผ์
์ ์์ ์ค๋ช
ํ์ง๋ง, '๊ด๊ณ'์์ฒด๋ฅผ ์ฃผ์
ํ๋ค๊ณ ๋ณด๊ธฐ๋ ์ด๋ ค์ธ ๋ฏ ํฉ๋๋ค.
>
> *์์กด์ฑ ์ฃผ์ *๊ณผ *์กฑ์ก ๊ฐ์ฒด ์ฃผ์ *์ ๋นํด ๋ ๋ค ๋๋ ทํ ์ด์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ์ ์ง๊ธ ๊ณค๋ํ ๊ฒ์ AOP ์ชฝ ์๋์ง์.
์ด์ฐ ๋์ ๊ฑด ์์์ผ ์์นจ์ ์๋ฐ์ ์ ํ์ต๋๋ค.
๊ดด๋ก์ฐ์ จ๋ค๋ฉด ์ฃ์ก... ^^
On 6์8์ผ, ์ค์ 11์16๋ถ, Toby Lee <tobyi...@gmail.com> wrote:
> ๊ฐ์ ์
๋ง์ ๋ง๊ฒ ์ฐ์ฃ . :)๊ทธ๋์ ์ฑ
ํผ์ ์ฐ๋๊ฒ ํธํ๊ตฐ์.
ใ ใ ใ ใ
'๊ด๊ณ ์ ๋ฆฝ' ๋ ์ข์ ๋ง ๊ฐ์ต๋๋ค.
๊ด๊ณ ้ไฟ ๋ช
์ฌ
๋ ์ด์์ ์ฌ๋, ์ฌ๋ฌผ, ํ์ ๋ฐ์๊ฐ ์๋ก ๊ด๋ จ์ ๋งบ๊ฑฐ๋ ๊ด๋ จ์ด ์์. ๋๋ ๊ทธ๋ฐ ๊ด๋ จ. โ๊ณ๊ด(ไฟ้) .
์ ๋ฆฝ ๅฎ็ซ ๋ช
์ฌ
์ ์ฒด์์ ํน์ ํ ๋ฉด์ด๋ ์ผ์ ํ ๋ด์ฉ์ ์ถ์ถํ์ฌ ๊ณ ์ ํ๋ ์ผ.
๋ง์์ ๊ฑธ๋ฆฌ๋ ๊ฒ์ ์์ด๋ฅผ ํ์๋ก ๋ณ์ญํ๋ฏ ํด์;; ์ฟจ๋ญ
'๊ด๊ณ ์ ๋ฆฝ' ๋ ์ข์ ๋ง ๊ฐ์ต๋๋ค.