๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring๐Ÿ€

Spring Bean ์ •๋ฆฌ

by @ENFJ 2022. 10. 23.

Spring Bean ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

=> ์Šคํ”„๋ง IOC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด Spring IOC ์ปจํ…Œ์ด๋„ˆ๋ž€ ๋ฌด์—‡์ผ๊นŒ?

=> ๋นˆ(bean)์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค.

 

ApplicationContext ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ Spring IOC์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋Œ€ํ‘œํ•˜๊ณ 

๋นˆ์„ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๊ณ  ๊ตฌ์„ฑ ๋ฐ ๋ชจ์œผ๋Š” ์ฑ…์ž„์ด ์žˆ๋‹ค๋ผ๊ณ  ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด์ฒ˜๋Ÿผ ๋นˆ์„ ์„ค๋ช…ํ•˜๋Š”๋ฐ IOC์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์“ฐ์ด๊ณ  IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ค๋ช…ํ•˜๋Š”๋ฐ ๋นˆ์ด ์“ฐ์ด๋Š” ๊ฒƒ์„ ํ™•์ธํ• ์ˆ˜ ์žˆ๋‹ค.

 

์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋นˆ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๊ต‰์žฅํžˆ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋น„์Šทํ•œ ๊ฐœ๋…์„ ๊ฐ€์ง„ ๋‹ค์–‘ํ•œ ์šฉ์–ด๋“ค์ด ํ˜ผ์šฉ๋˜๋ฏ€๋กœ

๋‹จ์–ด ์ž์ฒด๊ฐ€ ๋ชจํ˜ธํ•ด์ ธ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์™œ ์Šคํ”„๋ง ๋นˆ์ด ํ•„์š”ํ•˜๊ณ , ์Šคํ”„๋ง IOC์ปจํ…Œ์ด๋„ˆ๋Š” ์™œ ๋นˆ์„ ๊ด€๋ฆฌํ•˜๋Š”์ง€ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.


1. ๋นˆ์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์„ค์ •ํ• ๋•Œ ์˜์กด์„ฑ ์ž๋™์ฃผ์ž…์ด ์™œ ํ•„์š”ํ•œ์ง€ ์‚ดํŽด๋ณธ๋‹ค.

2. ์Šคํ”„๋ง์—์„œ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์–ด๋–ค ๋‹จ์ ์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณธ๋‹ค.

3. ์Šคํ”„๋ง IOC์ปจํ…Œ์ด๋„ˆ๋Š” ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š”์ง€ ์‚ดํŽด๋ณธ๋‹ค.

4. ๊ฐ์ฒด๋ฅผ ๋นˆ์œผ๋กœ ์„ค์ •ํ• ๋•Œ ์ฃผ์˜ํ•ด์•ผ ๋ ์ ์„ ์‚ดํŽด๋ณธ๋‹ค.


1. ๋นˆ์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์„ค์ •ํ• ๋•Œ ์˜์กด์„ฑ ์ž๋™์ฃผ์ž…์ด ์™œ ํ•„์š”ํ•œ์ง€ ์‚ดํŽด๋ณธ๋‹ค.

๊ฐ์ฒด๋ฅผ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜์ง€ ์•Š๊ณ  ์˜์กด์„ฑ ์ฃผ์ž…์„ ๋„์ž…ํ•œ๋‹ค๋ฉด ์–ด๋–ค ๋ถˆํŽธํ•œ์ ์ด ์žˆ์„๊นŒ?

์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์–ด๋””์—์„ ๊ฐ€ newํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด Service๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š”๋ฐ ์„œ๋น„์Šค์˜ ์ƒ์„ฑ์ž๋กœ DAO ๊ตฌํ˜„์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ฃ์–ด ์ฃผ๊ณ  ์žˆ๋‹ค.

๋งŒ์•ฝ DAO ๊ตฌํ˜„์ฒด๊ฐ€ ๋ฐ”๋€๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณณ์—์„œ๋„ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ• ๋•Œ DAO๋ฅผ ์ดˆ๊ธฐํ™”ํ•จ๊ณผ ๋™์‹œ์— ์–ด๋–ค dao์˜ ๊ตฌํ˜„์ฒด๋ฅผ ์„ ํƒํ• ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ฑ…์ž„๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋˜ํ•œ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ• ๋•Œ ์—ฌ๋Ÿฌ๊ฐœ์ด ์˜์กด์„ฑ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํ•ด๋‹น ์˜์กด์„ฑ ์ฃผ์ž… ์ˆœ์„œ๋ฅผ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ์ด๋Ÿฐ ์ž‘์€ ๊ทœ๋ชจ๊ฐ€ ์•„๋‹Œ ํฐ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์˜์กด์„ฑ์ด ์—„์ฒญ ๋Š˜์–ด๋‚˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ ์˜์กด์„ฑ์„ ์ง์ ‘ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์˜์กด๊ด€๊ณ„๋ฅผ ๋ชจ๋‘ ํŒŒ์•…ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด  ์ƒ๊น๋‹ˆ๋‹ค. 

๋˜ํ•œ ๋งŽ์€ ๊ฐ์ฒด๊ฐ€ ์ค‘๋ณต ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ! ์˜์กด์„ฑ ์ฃผ์ž…์ด ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜์—ฌ ์Šคํ”„๋ง IOC์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์˜์กด์„ฑ ์ฃผ์ž…์„ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ์ฃผ์ž…๋œ ์˜์กด์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


2. ์Šคํ”„๋ง์—์„œ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์–ด๋–ค ๋‹จ์ ์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณธ๋‹ค.

๋นˆ์€ ์‹ฑ๊ธ€ํ„ด์ด๋‹ค ๋ผ๋Š” ๋ง์„ ๋งŽ์ด ๋“ค์—ˆ๋‹ค.

๋งŒ์•ฝ ์Šคํ”„๋ง์ด ์•„๋‹Œ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ์ฒด๋ฅผ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์–ด๋–ค ๋ฌธ์ œ์ ์ด ์ƒ๊ธธ๊นŒ?

๊ฐ์ฒด๋ฅผ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๋งŒ๋“ ๋‹ค๋Š”๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด์— ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์—๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฒซ๋ฒˆ์งธ๋กœ ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ์ž์˜ ์ ‘๊ทผ์ง€์ •์ž๋ฅผ private๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋Š” ์ƒ์†์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ์ด์ ์ธ ๋‹คํ˜•์„ฑ์„ ์ ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋‘๋ฒˆ์งธ๋กœ ์•ˆ์ •์„ฑ์ด ์ค‘์š”ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•„์ˆ˜์ ์ธ ๋‹จ์œ„ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.  ๊ฐ์ฒด๋ฅผ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์œผ๋กœ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ์ฒด๋Š” ๊ณต์œ  ๊ฐ์ฒด๊ฐ€ ๋˜๋ฏ€๋กœ  ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ• ๋•Œ ํ…Œ์ŠคํŠธ์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์Šคํ”„๋ง์ด ์ด ๋‹จ์ ๋“ค์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•œ๊ฑด์ง€ ์•Œ์•„๋ณด์ž


 

IOC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋นˆ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด๋ฉฐ ์ด ๋‹จ์ ๋“ค์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 ๋จผ์ € ์Šคํ”„๋งIOC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ๋นˆ ์Šค์ฝ”ํ”„๊ฐ€ ์‹ฑ๊ธ€ํ†ค์ธ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ €ํฌ๋Š” ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ํ˜น์€ java ์„ค์ • ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ํ˜น์€ XML๊ธฐ๋ฐ˜์˜ ๋‹ค์–‘ํ•œ Configuration ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ†ต์ผ๋œ Bean Definition์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•  POJO์™€ Bean Defenition ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋นˆ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์—์„œ ์‹ฑ๊ธ€ํ†คํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ‰๋ฒ”ํ•œ ์ž๋ฐ”ํด๋žซ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

IOC์ปจํ…Œ์ด๋„ˆ๋Š” ์‹ฑ๊ธ€ํ†ค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ผ๋Š” ๊ธฐ๋Šฅ๋„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ์š” 

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ์Šคํ”„๋ง๋ฟ๋งŒ ์•„๋‹ˆ๋ผ cs์—์„œ ์ „๋ฐ˜์ ์œผ๋กœ ์“ฐ์ด๋Š” ๊ฐœ๋…์œผ๋กœ key์™€ value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์Šคํ”„๋ง IOC์ปจํ…Œ์ด๋„ˆ๋Š” ๋นˆ ์Šค์ฝ”ํ”„๊ฐ€ ์‹ฑ๊ธ€ํ†ค์ธ ๊ฐ์ฒด์— ๋นˆ์˜ ์ด๋ฆ„์„ key๋กœ ๊ฐ์ฒด๋ฅผ value๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์˜์กด์„ฑ์ด ์ฃผ์ž…๋˜์–ด์•ผ ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๋นˆ์œผ๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ์„๋•Œ ์Šคํ”„๋ง์€ ๋นˆ์˜ ์ด๋ฆ„์„ ์ด์šฉํ•˜์—ฌ ํ•ญ์ƒ ๋™์ผํ•œ single object ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋นˆ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ์ด ๋˜๋ฉด IOC์ปจํ…Œ์ด๋„ˆ๋Š” ์˜์กด ์„ค์ •์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์˜์กด์„ฑ ์ž๋™ ์ฃผ์ž…์ด ์ผ์–ด๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๋‹ค ํ•„์š”ํ•œ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ปค๋„ฅ์…˜ ํ’€์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ „์— ์ดˆ๊ธฐํ™” ๊ณผ์ •์ด ํ•„์š”ํ•œ ๊ฐ์ฒด๋“ค์€ ์ดˆ๊ธฐํ™” ๊ณผ์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐํ™”๊ฐ€ ๋๋‚˜๋ฉด ๋“œ๋””์–ด ๋นˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋ ๋•Œ ๋นˆ ์Šค์ฝ”ํ”„๊ฐ€ ์‹ฑ๊ธ€ํ†ค์ธ ๊ฐ์ฒด๋“ค๋„ ํ•จ๊ป˜ ์†Œ๋ฉธ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํŽธ๋ฆฌํ•œ ๋นˆ์ด์ง€๋งŒ ๊ฐ์ฒด๋ฅผ ๋นˆ์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฃผ์˜ํ•ด์•ผ ๋  ์  ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

ex ์‹ฑ๊ธ€ํ†ค ์Šค์ฝ”ํ”„์˜ ๋นˆ์ด value ๋ผ๋Š” ์ƒํƒœ๋ฅผ ๊ฐ€์งˆ๋–„ 

Thread1์€ value์ด ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Thread2 ๋Š” value๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์™€  ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋ฉด Thread2๋Š” ๋งค๋ฒˆ ๋‹ค๋ฅธ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ํ•ด๋‹น ๋นˆ์˜ ์ƒํƒœ๋ฅผ ํ•ญ์ƒ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ €ํฌ๊ฐ€ ์˜๋„ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋นˆ ์Šค์ฝ”ํ”„๋ฅผ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ƒํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋นˆ๋„ ์žˆ๋‹ค.

๋นˆ์€ ์ƒ์„ฑ๋˜๊ณ  ์กด์žฌํ•˜๊ณ  ์ ์šฉ๋˜๋Š” ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋นˆ ์Šค์ฝ”ํ”„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋นˆ์„ ์ ์šฉํ•˜๋Š” ๊ฐ์ฒด์— @Scope ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ”„๋ง ๋นˆ์ด ์™œ ํ•„์š”ํ• ๊นŒ
=> ์Šคํ”„๋ง IOC์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํŠน์ • ๊ฐ์ฒด์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์Šคํ”„๋ง IOC์ปจํ…Œ์ด๋„ˆ๋Š” ์™œ ๋นˆ์„ ๊ด€๋ฆฌํ• ๊นŒ?
=> ์˜์กด์„ฑ์„ ์ž๋™ ์ฃผ์ž…ํ•ด ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•ด๋‹น ์˜์กด์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค.
๋˜ํ•œ ์˜์กด์„ฑ ์ฃผ์ž…ํ• ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด๊ฐ€ ํ•ญ์ƒ ๋™์ผํ•จ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ :https://www.youtube.com/watch?v=3gURJvJw_T4