Inversion Of Control ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ
2 ๊ฐœ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Spring | ๊ฒฐํ•ฉ๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค | Dependency Injection | IoC ์ปจํ…Œ์ด๋„ˆ | ์ดํด๋ฆฝ์Šค Spring ํ”Œ๋Ÿฌ๊ทธ์ธ | xml ์‚ฌ์šฉ๋ฐฉ์‹ ํ™˜๊ฒฝ ์ค€๋น„

Service ์‚ฌ์šฉ์ž ์š”๊ตฌ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ๋‹ด๋‹น Dao ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ž๋ฐ”๋งŒ์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋กํ•ด์ค€๋‹ค. ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์†Œ์Šค์ฝ”๋“œ ์—†์ด ๋ฐ”๊พธ๋Š” ๊ฒƒ, ๊ฒฐํ•ฉ๋ ฅ์„ ๋‚ฎ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. Dao์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•ด ๊ฒฐํ•ฉ๋ ฅ์„ ๋‚ฎ์ถฐ์ค€๋‹ค. DI ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์กฐ๋ฆฝ์„ ์œ„ํ•œ ์™ธ๋ถ€ ์„ค์ •์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. DI(Dependency Injection) ์ข…์†์„ฑ ์ฃผ์ž… (๋ถ€ํ’ˆ ์กฐ๋ฆฝ) B๋Š” A์˜ ๋ถ€ํ’ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด b๊ฐ€ Dependency B b = new B(); A a = new A(); a.setB(b); a.setB(b); injection ๋ถ€ํ’ˆ์„ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ๊ณผ ๋ถ€ํ’ˆ์„ ์กฐ๋ฆฝํ•ด์•ผ ๋˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค. Dependency๋ฅผ ์กฐ๋ฆฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. 1. setter..

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

Container IoC (Inversion of Control) DI (Dependency Injection) ์ปจํ…Œ์ด๋„ˆ(Container) ์ปจํ…Œ์ด๋„ˆ๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์—๊ฒŒ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Servlet์„ ์‹คํ–‰ํ•ด์ฃผ๋Š” WAS๋Š” Servlet ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. WAS๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ๋ถ€ํ„ฐ ์„œ๋ธ”๋ฆฟ URL์— ํ•ด๋‹นํ•˜๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด, ์„œ๋ธ”๋ฆฟ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ ํ›„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ–ˆ์ง€๋งŒ, ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ WAS๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Servlet ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค. Servlet์ปจํ…Œ์ด๋„ˆ๋Š” ๋™์ผํ•œ ์„œ๋ธ”๋ฆฟ์— ํ•ด๋‹นํ•˜๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด, ๋˜ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  ๊ธฐ์กด์— ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„ ์„œ๋ธ”๋ฆฟ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์›น ๋ธŒ..