๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Study/Java

[TIL] Spring :IoC / DI

by hong- 2022. 6. 14.

๐Ÿ™๐Ÿป ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํŠน์ง•

 ๐Ÿ“ IoC / DI : ์ œ์–ด์˜ ์—ญ์ „ / ์˜์กด์„ฑ ์ฃผ์ž…

   โ–ช๏ธ IoC : ์ œ์–ด์˜ ์—ญ์ „

     : ํ๋ฆ„์˜ ์ฃผ๋„๊ถŒ์ด ๋ฐ”๋€ ๊ฒƒ


   โ–ช๏ธ DI : ์˜์กด์„ฑ ์ฃผ์ž…

     : ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ƒ์„ฑ์ž ๋“ฑ์„ ํ†ตํ•ด ์ƒ์„ฑ

     : ํด๋ž˜์Šค๋“ค ๊ฐ„ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์„ ๋А์Šจํ•œ ๊ฒฐํ•ฉ์œผ๋กœ ๋ฐ”๊พธ์–ด ์คŒ


๐Ÿ’ก ์˜์กด์„ฑ ์ฃผ์ž…์ด ํ•„์š”ํ•œ ์ด์œ  

     : ํ˜„์žฌ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์™ธ๋ถ€ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ new ํ‚ค์›Œ๋“œ์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€ ๊ฒฐ์ •

      → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ๋‚ด๋ถ€์— ์ง์ ‘์ ์œผ๋กœ new๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๊ด€์ ์—์„œ ๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

   โ–ธ Stub์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

 ๐Ÿ’ก Stub ? ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ๋ฏธ๋ฆฌ ์ค€๋น„๋œ ๋ฐ์ดํ„ฐ ์‘๋‹ต
       - ๊ณ ์ •๋œ ๋ฐ์ดํ„ฐ๋กœ ํ˜ธ์ถœ ์‹œ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌํ„ด
         = ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์ง„๋‹ค๊ณ  ํ‘œํ˜„ ! 
 ๐Ÿ’ก ๋ฉฑ๋“ฑ์„ฑ ? ๋ช‡๋ฒˆ์„ ํ˜ธ์ถœํ•ด๋„ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ

 # ๋งŒ์•ฝ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์Šคํ…์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ?

  : ์•„๋น  ํด๋ž˜์Šค๋ฅผ ์—„๋งˆ (์Šคํ…) ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๋ฉด ๋Œ€์šฉ๋Ÿ‰์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•จ

    → ์ฆ‰, new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์ฐธ์กฐํ•  ํด๋ž˜์Šค๊ฐ€ ๋ฐ”๋€Œ๊ฒŒ ๋  ๊ฒฝ์šฐ ํด๋ž˜์Šค๋ฅผ ๋ชจ๋‘ ์ˆ˜์ •ํ•ด์•ผ ํ•จ

             new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜์กด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ํด๋ž˜์Šค ๊ฐ„ ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ

         : ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•˜๋”๋ผ๋„ ํด๋ž˜์Šค ๊ฐ„ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์€ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ   โžก๏ธ  ๋А์Šจํ•œ ๊ฒฐํ•ฉ์ด ํ•„์š”ํ•จ


 

'Study > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] Spring :PSA  (0) 2022.06.14
[TIL] Spring :AOP  (0) 2022.06.14
[TIL] Spring : POJO  (0) 2022.06.14
[TIL] ํ”„๋ ˆ์ž„์›Œํฌ : Spring  (0) 2022.06.13
[TIL] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”  (0) 2022.06.10