Skip to content

Latest commit

ย 

History

History
61 lines (45 loc) ยท 4.67 KB

File metadata and controls

61 lines (45 loc) ยท 4.67 KB

โœ๏ธ Spring III

Dispatcher Servlet ์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ์ œ์ผ ์•ž์—์„œ ๋ฐ›๋Š” ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์ž…๋‹ˆ๋‹ค. ๊ณตํ†ต๋œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ ํ›„์— ์ ์ ˆํ•œ ์„ธ๋ถ€ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ณ  ์„ธ๋ถ€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋ฐ˜ํ™˜ํ•  view๋ฅผ ๋‹ค์‹œ dispatcher servlet์— ๋„˜๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
Handler Mapping ๊ณผ Handler Adapter๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ํ•ธ๋“ค๋Ÿฌ ๋งคํ•‘์€ ์šฐ์„  ์ˆœ์œ„์— ๋”ฐ๋ผ ์š”์ฒญ url์— ๋งž๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•ธ๋“ค๋Ÿฌ ์–ด๋Œ‘ํ„ฐ๋Š” ํ•ธ๋“ค๋Ÿฌ ๋งคํ•‘์œผ๋กœ ํ†ตํ•ด ์ฐพ์€ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ๋ก€๋Œ€๋กœ ํ•ธ๋“ค๋Ÿฌ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋Œ๋ฉด์„œ ๋งž๋Š” ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ฐพ์œผ๋ฉด dispatcher servlet์ด ํ•ด๋‹น ์–ด๋Œ‘ํ„ฐ์˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

(์™œ handler adapter๊ฐ€ ํ•„์š”ํ•œ๊ฐ€)

๋‹ค์–‘ํ•œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์— ์ด์ ์€ ์–ด๋–ค๊ฒŒ ์žˆ๋‚˜์š”? ์Šคํ”„๋ง์€ ํ•˜๋‚˜ ์ด์ƒ์˜ JAR ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋œ ๋ชจ๋“ˆ์ด ๋ชจ์—ฌ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์„œ ๋ช‡๊ฐœ์˜ JAR ํŒŒ์ผ๋งŒ ์žˆ์œผ๋ฉด ๊ฐœ๋ฐœ๊ณผ ์‹คํ–‰์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ ๋˜ํ•œ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ์ฒด์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์Šค์— ์˜์กด ๊ด€๊ณ„๊ฐ€ ๋ช…์‹œ๋˜์ง€ ์•Š์•„ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ์œ ์ง€ํ•ด ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์™ธ์—๋„ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ฐ˜๋ณต๋˜๋Š” ๊ณตํ†ต ๋กœ์ง์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์‘์ง‘๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ฆ‰, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ค์ง ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์–ด ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Spring์˜ IoC(์ œ์–ด์˜ ์—ญ์ „)์™€ DI(์˜์กด์„ฑ ์ฃผ์ž…)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. IoC(์ œ์–ด์˜ ์—ญ์ „)๋ž€ ์‚ฌ์šฉํ•  ๊ฐ์ฒด๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œ์–ด์˜ ์—ญ์ „์„ ํ†ตํ•ด DI(์˜์กด์„ฑ ์ฃผ์ž…)๊ฐ€ ๊ฐ€๋Šฅํ•ด ์ง‘๋‹ˆ๋‹ค.

DI(์˜์กด์„ฑ ์ฃผ์ž…)๋ž€ ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ง์ ‘ ์˜์กดํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ์˜์กด์„ฑ์„ ์ฃผ์ž… ๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถฐ์„œ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

Spring์˜ Bean๊ณผ ๊ทธ ์ƒ๋ช…์ฃผ๊ธฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. Bean์ด๋ž€ Spring ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Bean ๊ฐ์ฒด๋Š” ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ์ƒ์„ฑ๋˜๋ฉฐ ์ดํ›„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ์˜์กด ๊ด€๊ณ„๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. Bean ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์˜์กด ๊ด€๊ณ„๊ฐ€ ์ฃผ์ž…๋˜๋ฉด ์ดˆ๊ธฐํ™” ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ ์‚ฌ์šฉ๋  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด Bean ๊ฐ์ฒด๋„ ์†Œ๋ฉธ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ