๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring

[Spring] ์™œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๊นŒ?

by Leica 2020. 3. 1.
๋ฐ˜์‘ํ˜•

[Spring] ์™œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๊นŒ?

IoC๋Š” spring์„ ํ†ตํ•ด์„œ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ฉฐ ์ผ๋ฐ˜ ์ž๋ฐ” ๊ฐ์ฒด๋กœ DI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ• ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ๋„ spring์˜ IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)

DI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค spring์—์„œ ์ œ๊ณตํ•˜๋Š” IoC ์ปจํ…Œ์ด๋„ˆ์˜ DI๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์ด๋‹ค.

 

๊ฐ์ฒด์˜ Scope

์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๋ฉด ๊ฐ์ฒด์˜ scope๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค.

IoC ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๋นˆ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ํ†ค scope๋กœ ๋“ฑ๋ก๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์ ์œผ๋กœ ์˜ค๋กœ์ง€ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š” ๊ฐ์ฒด๋ผ๋ฉด IoC ์ปจํ…Œ์ด๋„ˆ์— ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•ด์„œ ์•„์ฃผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“ ์‹ฑ๊ธ€ํ†ค์˜ ๋ฐ˜๋Œ€ ๊ฐœ๋… = ํ”„๋กœํ† ํƒ€์ž… = ๋งค๋ฒˆ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

 

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์— ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ํ•„์š”ํ•œ ๊ฐ์ฒด๋Š” ์‹ฑ๊ธ€ํ†ค scope์ด ๋ฉ”๋ชจ๋ฆฌ ์ธก๋ฉด์— ํšจ์œจ์ ์ด๋ฉฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ์œ ๋ฆฌํ•˜๋‹ค.

 

๋ผ์ดํ”„ ์‚ฌ์ดํด ์ธํ„ฐํŽ˜์ด์Šค ์ง€์›

ํŠนํžˆ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ธํ„ฐํŽ˜์ด์Šค๋Š” spring IoC ์ปจํ…Œ์ด๋„ˆ์— ๋“ฑ๋ก๋œ ๋นˆ๋“ค์—๋งŒ ๊ตญํ•œ๋˜์–ด ์ผ๋ฐ˜ ์ž๋ฐ” ๊ฐ์ฒด๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

๋ผ์ดํ”„ ์‚ฌ์ดํด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ์–ด๋–ค ๋นˆ์ด ๋งŒ๋“ค์–ด์งˆ๋•Œ ๋นˆ์— ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํด๋ž˜์Šค๋“ค์ด ๋ชจ๋‘ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” ์˜์กด ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์–ด๋ ค์šด๋ฐ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋Ÿฐ ์ƒํ™ฉ์—์„œ๋„ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

References

์ธํ”„๋Ÿฐ - ๋ฐฑ๊ธฐ์„ ๋‹˜์˜ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ ๊ธฐ์ˆ 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€