๐Ÿ’šํ›„๊ธฐ

์–‘์ด ์–ด๋งˆ์–ด๋งˆํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์จ๋†”๋„ ๋ถ€๋‹ด์Šค๋Ÿฌ์šด ๋ถ„๋Ÿ‰์ด๋„ค์š”;;
๊ทผ๋ฐ ๋˜๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Bean, ์„ค์ • ํŒŒ์ผ, ์ปจํ…Œ์ด๋„ˆ, DL, DI.. ์ƒ์†Œํ•œ ๋‹จ์–ด๊ฐ€ ๋งŽ์ด ๋‚˜์˜ค๊ณ  ์ด๋“ค๋ผ๋ฆฌ ๊ด€๊ณ„์„ฑ์ด ์žˆ์–ด์„œ ์•„์ง ํ—ท๊ฐˆ๋ฆฌ๋„ค์š”. ์•„ ๊ทธ๋ฆฌ๊ณ 
(์ €ํ•œํ…Œ๋งŒ) ์ข‹์€ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.ใ…‹ 6์ผ ๋ฒผ๋ฝ์น˜๊ธฐํ•ด์„œ ํ† ์ต์Šคํ”ผํ‚น Lv.6 ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. 7์ผ ๋ฒผ๋ฝ์น˜๊ธฐํ–ˆ์œผ๋ฉด HOXY Lv.7 ๊ฐ€๋Šฅ? ํ‘ธํ•ฐใ…‹ใ…Ž.. 2๋…„์€ ์ƒ๊ฐ๋ณด๋‹ค ๋น ๋ฅด๋”๋ผ๊ตฌ์š”.. ์Šคํ”ผํ‚น ์–ดํ•™ ์ ์ˆ˜ ํ•„์š”ํ•˜์‹  ๋ถ„๋“ค ์˜คํ”ฝ ๋ง๊ณ  ํ† ์Šค๋ณด์„ธ์š” ํ† ์Šค. ์ € ์˜คํ”ฝ์€ IM1 ๋‚˜์™”๋Š”๋ฐ ํ† ์ต์Šคํ”ผํ‚น์€ Lv.6 ์ตœ๊ณ ์  ๋ฐ›์•˜์–ด์š”. ํ† ์Šค ๋ณด์„ธ์š” ํ† ์Šค
ํ›„๊ธฐ ์“ฐ๋ผ๋‹ˆ๊นŒ ์–ดํ•™ ์ ์ˆ˜ ์ด์•ผ๊ธฐ ํ•˜๊ณ  ์žˆ๋„ค์š” ์ฉœ์ฉœ์ฉœ.. ์ดํ•ดํ•ด์ฃผ์„ธ์š” ํ† ์Šค ์žฌ์ˆ˜ ์•ˆํ•ด๋„ ๋˜์„œ ๊ธฐ๋ป์„œ ๊ทธ๋Ÿฌ๋Š”๊ฒ๋‹ˆ๋‹ค.
์ด๋ฒˆ์ฃผ ํ™”์ดํŒ…ํ•˜์‹œ๊ณ  ๋‹ค๋“ค ํ–‰๋ณตํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ

  • IoC ๊ฐœ๋…
  • IoC ๊ด€๋ จ ์šฉ์–ด ์ดํ•ด

ํ•™์Šต ๋ชฉํ‘œ

  • IoC ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.
  • DL๊ณผ DI์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  IoC ๊ด€๋ จ ์šฉ์–ด๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

IoC์˜ ๊ฐœ๋…

IoC(Inversion of Control)์ด๋ž€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ, ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ด€๋ฆฌ๊นŒ์ง€ ๋ชจ๋“  ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ œ์–ด๊ถŒ์ด ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ์ œ์–ด๊ถŒ์˜ ์—ญ์ „์ด๋‹ค.


โ€ป ์ปดํฌ๋„ŒํŠธ ์˜์กด๊ด€๊ณ„ ๊ฒฐ์ •(component dependency resolution), ์„ค์ •(configuration) ๋ฐ ์ƒ๋ช…์ฃผ๊ธฐ(lifecycle)๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋””์ž์ธ ํŒจํ„ด(Design Pattern)

IoC๋ž€ ๊ฐ์ฒด๋ฅผ ์ œ์–ดํ•˜๋Š” ์ œ์–ด๊ถŒ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์‹œ์Šคํ…œ์—๊ฒŒ ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. Java๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๊ฐ€ ์†Œ๋ฉธ๋˜๊ธฐ๊นŒ์ง€์˜ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ์‹œ๊ฐ„์  ๋น„์šฉ์ด ๊ต‰์žฅํžˆ ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ์˜ฌ๋ ค๋‘๊ณ , ์‚ฌ์šฉํ•œ ํ›„์— ๋ฐ”๋กœ ์†Œ๋ฉธํ•˜์ง€๋„ ์•Š๋Š” ๋“ฑ์˜ ๊ด€๋ฆฌ๋ฅผ ์‹œ์Šคํ…œ์ด ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Spring์€ ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์„ ๋ณด์‹œ๋ฉด, IoC๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์˜ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. IoC์ธ ๊ฒฝ์šฐ๋Š” ์ž๋™์ ์œผ๋กœ ๋ˆ„๊ตฐ๊ฐ€(์ปจํ…Œ์ด๋„ˆ๊ฒ ์ฃ )๊ฐ€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

IoC ์ปจํ…Œ์ด๋„ˆ

โ€ป ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋„ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ƒ์„ฑ ๋ฐ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Œ. ์ฆ‰, IoC ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • IoC ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ์ฑ…์ž„์ง€๊ณ , ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค.
  • POJO์˜ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”, ์„œ๋น„์Šค, ์†Œ๋ฉธ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง„๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง์ ‘ POJO๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ์—๊ฒŒ ๋งก๊ธด๋‹ค.(๊ฐ•์ œ๋Š” ์•„๋‹˜)


๊ฐ์ฒด๋“ค์ด POJO๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฐ์ฒด๋“ค์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ์„ Spring ์ปจํ…Œ์ด๋„ˆ๋ผ ํ•ฉ๋‹ˆ๋‹ค. IoC ์ปจํ…Œ์ด๋„ˆ๋Š” Spring์ด ์ตœ์ดˆ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์ด ์ปจํ…Œ์ด๋„ˆ๋กœ ์ธํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์˜ˆ์‹œ๋กœ ์›น ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์š”์ฒญ์ด ์ •๋ง ๋งŽ์€ ํŽธ์ด๋ผ์„œ ์š”์ฒญ๋งˆ๋‹ค ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ๋˜๋ฉด ์†Œ๋ฉธ๋„ ์‹œ์ผœ์•ผํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ฐ„๊ณผํ•˜๋ฉด ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿด ๋•Œ๋Š” IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ต‰์žฅํžˆ ์œ ์šฉํ•˜๊ฒ ์ฃ ?

IoC ๋ถ„๋ฅ˜

IoC๋Š” DL๊ณผ DI๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Spring์—์„œ ์ž๋™์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ฒซ์งธ๋กœ, Spring ์ปจํ…Œ์ด๋„ˆ์— ์˜ฌ๋ผ์™€์žˆ๋Š” ๊ฐ์ฒด๋“ค ์ค‘์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ๋Š” ๊ธฐ๋Šฅ์ด DL์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ID๋‚˜, ํƒ€์ž…์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
๋‘˜์งธ๋กœ, ๊ฐ์ฒด๋“ค๋ผ๋ฆฌ์˜ ์˜์กด๊ด€๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด DI์ž…๋‹ˆ๋‹ค.
์˜ˆ์‹œ๋กœ A ๊ฐ์ฒด๊ฐ€ B ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด B ๊ฐ์ฒด๊ฐ€ A ๊ฐ์ฒด์— ์ฃผ์ž…์ด ๋˜์–ด์•ผํ•˜๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ์ž๋™์ ์œผ๋กœ ์ฐธ์กฐ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์ด DI๋ผ๋Š” ๊ฒƒ์ด์ฃ .
์˜์กด์„ ์œ„ํ•œ ๊ฐ์ฒด ์ฃผ์ž…(Injection) ๋ฐฉ์‹์€ 3๊ฐ€์ง€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.(๊ทธ๋ฆผ ์ฐธ๊ณ )
1. Setter์— ์˜ํ•œ Injection
2. Constructor(์ƒ์„ฑ์ž)์— ์˜ํ•œ Injection
3. Method(๋ฉ”์†Œ๋“œ ์ด๋ฆ„)์— ์˜ํ•œ Injection
Spring์—์„œ๋Š” ์ด 3๊ฐ€์ง€ ๋ฐฉ์‹์„ ๋ชจ๋‘ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

DL๊ณผ DI

๋นˆ ์„ค์ • ํŒŒ์ผ์€ XML๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Spring IoC ๊ด€๋ จ ์šฉ์–ด

Manged Bean

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

Spring Container

  • ๊ด€๋ฆฌ๋˜๋Š”(managed) ๋นˆ์ด ๋ชจ์—ฌ์žˆ๋Š” ๊ณณ
  • IoC ์ปจํ…Œ์ด๋„ˆ๋กœ์จ Application Context ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„๋จ

IoC ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐœ๋… ๋А๋‚Œ์ด๋ผ๋ฉด,, Application Context ํด๋ž˜์Šค๋Š” IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•ด๋†“์€ ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‹ค์Šต

์ด๋ฒˆ ํฌ์ŠคํŒ… ์‹ค์Šต์€ ์ง์ „ ํฌ์ŠคํŒ… ์‹ค์Šต ๊ฒฐ๊ณผ๋ฌผ์„ ์ด์–ด์„œ ํ•ฉ๋‹ˆ๋‹ค.

โ†‘ ํ”„๋กœ์ ํŠธ -> Java Resources -> src/main/java -> new -> Package ํด๋ฆญ
DAO ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๊ฒ๋‹ˆ๋‹ค.

โ†‘ Name ์ž…๋ ฅ -> Finish ํด๋ฆญ
Name์€ '๊ทธ๋ฃนID.ํ”„๋กœ์ ํŠธ๋ช… ์ผ๋ถ€' ์ด๋ ‡๊ฒŒ ์ง“์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฃนID ์žŠ์–ด๋ฒ„๋ฆฌ์…จ๋‹ค๋ฉด pom.xml์—์„œ ํ™•์ธํ•ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ†‘ ์ƒ์„ฑ๋œ ํŒจํ‚ค์ง€์— ํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

โ†‘ ์ด๋ฆ„ ๋Œ€์ถฉ ์ง“๊ณ  finish ํด๋ฆญ

1. TestDAO ์ž‘์„ฑ

โ†‘ ๋‹จ์ˆœํžˆ ๋‘ ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋ฉ”์ธ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ•„์š”ํ•˜๊ฒ ์ฃ ?

๊ฐ™์€ ํŒจํ‚ค์ง€์—์„œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

โ†‘ ์ด๋ฆ„ ๋งˆ์Œ๋Œ€๋กœ ์ง€์œผ์‹œ๊ณ , ํ‘œ์‹œํ•œ ๋ถ€๋ถ„ ์ฒดํฌ ํ•ด์ฃผ์„ธ์š”.

โ†‘ ๋ฉ”์ธ ํด๋ž˜์Šค์— ์•„๊นŒ ๋งŒ๋“  ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ถœ๋ ฅ๊นŒ์ง€ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋งŽ์ด ํ•ด์™”์ฃ .

2. TestDAO ๋นˆ ์ปจํ…Œ์ด๋„ˆ์— ๋“ฑ๋ก

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

์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ์€ src/main/resources์— ๋งŒ๋“ญ๋‹ˆ๋‹ค.

โ†‘ new -> Other ํด๋ฆญ

โ†‘ Spring -> Spring Bean Configuration file ํด๋ฆญ

โ†‘ File-name ์ž…๋ ฅ -> finish ํด๋ฆญ

โ†‘ beans ํƒœ๊ทธ ๋‚ด์— bean ํƒœ๊ทธ ์ž‘์„ฑ
id ์ž‘์„ฑ : ํด๋ž˜์Šค๋ช…(๋‹จ, ์ฒซ๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž์ด์–ด์•ผ ํ•จ)
class ์ž‘์„ฑ : FULL๋กœ ์ ์–ด์ค˜์•ผ ํ•จ('๊ทธ๋ฃนID.ํด๋ž˜์Šค๋ช…')

์ด๋ ‡๊ฒŒ ์ ์–ด์คŒ์œผ๋กœ์จ HelloDAO ํด๋ž˜์Šค๋ฅผ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ Main ๋ฉ”์†Œ๋“œ์—์„œ ์„ค์ • ํŒŒ์ผ์— ๋“ฑ๋ก๋œ HelloDAO ๋นˆ(๊ฐ์ฒด)์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ๊ณ„๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.

3. TestDAO DL๋กœ ์‚ฌ์šฉ

์ฝ”๋“œ ์ˆœ์„œ๋Š” ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

  1. Spring ์ปจํ…Œ์ด๋„ˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์ž ์ธ์ž๋กœ ์•„๊นŒ ๋งŒ๋“ค์—ˆ๋˜ ๋นˆ ์„ค์ • ํŒŒ์ผ(xml)์„ ๊ฒฝ๋กœ ํฌํ•จํ•˜์—ฌ ์จ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    ์ด ์„ค์ • ํŒŒ์ผ์ด ๋กœ๋”ฉ๋  ๋•Œ, ์„ค์ • ํŒŒ์ผ์— ๋“ฑ๋ก๋œ ๋ชจ๋“  Bean๋“ค์ด ๊ฐ™์ด ๋กœ๋”ฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์ ์— Bean๋“ค์ด ๋ชจ๋‘ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  2. ์ƒ์„ ํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋นˆ(๊ฐ์ฒด)์„ ์ฐพ์Šต๋‹ˆ๋‹ค.(DL)
    ์ธ์ž 1์€ ํด๋ž˜์Šค ์ด๋ฆ„, ์ธ์ž 2๋Š” ํด๋ž˜์Šค์˜ ํƒ€์ž…์„ ์ ์Šต๋‹ˆ๋‹ค.
    โ€ป Bean ์ƒ์„ฑ์€ (1) ์‹œ์ ์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธด ๋‹จ์ˆœ ๊ฐ€์ ธ์˜ค๋Š” ๊ตฌ๊ฐ„โ—

  3. ์ฐพ์€ ๋นˆ(๊ฐ์ฒด)์„ ํ™œ์šฉํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

โ†‘ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

๋นจ๊ฐœ์„œ ์—๋Ÿฌ๊ฐ™์ง€๋งŒ ์•„๋‹™๋‹ˆ๋” ใ…Žใ…Ž
์ดˆ๋ก์ƒ‰ ์ƒ์ž๋กœ ํ‘œ์‹œํ•œ ๋ถ€๋ถ„์ด ๋‚˜ํƒ€๋‚ด๋Š” ์˜๋ฏธ๋Š” '์ € XML๋กœ๋ถ€ํ„ฐ ๋นˆ(๊ฐ์ฒด)์„ Loadingํ–ˆ๋‹ค.' ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์ฝ”๋“œ ๋ผ์ธ์ด ๋๋‚˜๋ฉด dao ๊ฐ์ฒด๋Š” ๋ฐ˜ํ™˜(garbage collecting)๋˜๋Š”๋ฐ,
dao ๊ฐ์ฒด๊ฐ€ ์ฐธ์กฐํ•˜๋˜ Bean์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ctx ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ต‰์žฅํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ์ค„์–ด๋“ค์ฃ .

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN