[Spring Framework] @RestController & @Controller ์ฐจ์ด
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
@Controllerํ•ด๋‹น ์• ๋„ˆํ…Œ์ด์…˜์€ ์‘๋‹ต์— ๋Œ€ํ•ด์„œ ๋ฌธ์ž์—ด ๊ฒฝ๋กœ๋ฅผ ๋ฆฌํ„ด์„ ํ•˜๋ฉด ํ•ด๋‹น ๊ฒฝ๋กœ์— ์ ‘๋ฏธ์–ด(suffix)๊ฐ€ ์„ค์ •์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ถ™๊ฒŒ ๋จ.์˜ˆ์‹œ) html, jsp ๋“ฑ๋ฆฌํ„ด์ด ๋˜๋ฉด DispatcherServlet์„ ํ†ตํ•ด ๋ทฐ ๋ฆฌ์กธ๋ฒ„์— ๋ฆฌํ„ด์ด ๋˜์–ด ํ•ด๋‹น html ๋ทฐ๋ฅผ ๋ฆฌํ„ด์„ ํ•ด์ค€๋‹ค.@RestControllerController์™€ ResponseBody ์• ๋„ˆํ…Œ์ด์…˜์ด ํ•ฉ์„ฑ ๋˜์–ด์žˆ๋Š” ์• ๋„ˆํ…Œ์ด์…˜์ž„.ResponseBody: ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ฉ”์„œ๋“œ ๋ฐ˜ํ™˜ ๊ฐ’์„ HTTP ์‘๋‹ต์˜ Body์— ์ง์ ‘ ์“ฐ๋„๋ก ์ง€์‹œํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์ž„@ResponseBody์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ฉ”์„œ๋“œ ๋ฐ˜ํ™˜ ๊ฐ’์„ HTTP ์‘๋‹ต์˜ Body์— ์ง์ ‘ ์“ฐ๋„๋ก ์ง€์‹œํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์ž„๋ฉ”์„œ๋“œ์—์„œ ๋ฆฌํ„ด์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ HttpMessageConverter์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ ..
[Spring Framework] DispatcherServle
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
Servlet API์ž๋ฐ”์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋ณธ์ ์ธ API๋กœ ServletServlet: ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ œ๊ณต์ด ๋˜๋ฉฐ, ์ง์ ‘ Servlet์„ ๊ตฌํ˜„์„ ํ•จ. ํ†ฐ์บฃ์€ ํ•ด๋‹น ์„œ๋ธ”๋ฆฟ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌ๋ฅผ ํ•ด์คŒ.์ฆ‰, Tomcat์€ Servlet ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๊ณ  ํ˜ธ์ถœ์„ ํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.๋‹จ, Servlet ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌํ˜„ํ•ด์•ผ์ง€๋งŒ ํ†ฐ์บฃ์— ํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Œ.Tomcat๊ณผ Jetty ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ํ•ด๋‹น APIํ˜•ํƒœ์— ๋งž๊ฒŒ ๊ตฌํ˜„์ด ๋˜์–ด์žˆ์Œ.TomcatApache Software Foundation์—์„œ ๊ฐœ๋ฐœํ•œ ์ž๋ฐ” ๊ธฐ๋ฐ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS) ์ด๋‹ค.์ž๋ฐ”์— ๋‚ด์žฅ ๋˜์–ด์žˆ๋Š” Servlet API ์„œ๋ธ”๋ฆฟ ์‹คํ–‰ ํ™˜๊ฒฝ ์ŠคํŽ™์„ ๊ตฌํ˜„ํ•œ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ์ž„.์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ(Servlet Container)๋ผ๊ณ ๋„ ..
[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ ๋™์ž‘ ์›๋ฆฌ
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
(1) IoC ์ปจํ…Œ์ด๋„ˆ์˜ ์—ญํ• ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •์˜ํ•œ ๊ฐ์ฒด๋“ค์„ Bean์œผ๋กœ IoC ์ปจํ…Œ์ด๋„ˆ์— ๋ณด๊ด€์„ ํ•ด๋‘๊ณ , ์Šคํ”„๋ง์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•  ๋•Œ Bean์„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์˜์กด์„ฑ์„ ์ฃผ์ž…์„ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.( ํ•ด๋‹น ๋ถ€๋ถ„์€ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ๋œฐ ๋•Œ ์ฆ‰, ์ดˆ๊ธฐํ™” ์‹œ์ ์— ๊ฐ์ฒด์— ๋Œ€ํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ด๋ค„์ง„๋‹ค. )์ฝ”๋“œ์ ์œผ๋กœ org.springframework.context.ApplicationContext๋Š” Spring IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํ•ต์‹ฌ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. (2) IoC ์ปจํ…Œ์ด๋„ˆ์˜ Bean(๊ฐ์ฒด) ๊ด€๋ฆฌ ๊ณผ์ •IoC์ปจํ…Œ์ด๋„ˆ๊ฐ€ Bean์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์€ ํฌ๊ฒŒ 7๊ฐ€์ง€๊ฐ€ ์กด์žฌ ( ๋˜ํ•œ, ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ๊ณผ์ •์œผ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ) ( ํ•ด๋‹น ๊ณผ์ •์€ ์ดˆ๊ธฐํ™” ์‹œ์ ์ธ ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ์ดˆ๊ธฐ..
[Spring Framework] IoC ์ปจํ…Œ์ด๋„ˆ & Bean ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
1. IoC Container ( ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ )์•ž์„œ ์‚ดํŽด๋ณธ IoC๋Š” "์ œ์–ด์˜ ์—ญ์ „", IoC Container์—๊ฒŒ ์ œ์–ด์˜ ๊ถŒํ•œ์„ ๋„˜๊ธด๋‹ค๊ณ  ์„ค๋ช…์„ ํ–ˆ์—ˆ๋‹ค. IoC Container๋Š” ๊ฐ์ฒด๋ฅผ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด๋“ค์„ ๋ชจ๋‘ ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ์–ด์„œ ๋ณด๊ด€์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋Š” ๋‚ด๋ถ€์˜ ๊ฐ์ฒด๋“ค์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์ •์œผ๋กœ๋Š” ๋จผ์ € ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ์ธ์Šคํ„ด์Šคํ™” ๋˜๊ณ , ์ธ์Šคํ„ด์Šคํ™” ๋œ ๊ฐ์ฒด๋“ค์€ ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ž๋™์œผ๋กœ ๋ฉ๋‹ˆ๋‹ค.์ด๋ ‡๋“ฏ, IoC Container๋Š” Bean(๊ฐ์ฒด) ๋“ค์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ž๋™์œผ๋กœ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. * IoC Container๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋“ค์€ ๋ชจ๋‘ Bean์ด๋‹ค. - IoC ์ปจํ…Œ์ด๋„ˆ๋Š” ์ž๋ฐ”์˜ ๊ฐ์ฒด๋กœ์จ ์กด์žฌํ•œ๋‹ค.- ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„์ฒด๋กœ๋Š” BeanFactory ์™€ ์ด๋ฅผ ํ™•์žฅํ•œ ์ธํ„ฐ..
[Spring Framework] IoC & DI ๊ฐœ๋… ์ดํ•ด ํ•˜๊ธฐ
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
1. IoC (Inversion of Control)Inversion of Control์˜ ๋œป์€ "์ œ์–ด์˜ ์—ญ์ „"์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ œ์–ด๋Š”, ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ฐพ๋Š” ๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜ Spring Framework์˜ IoC ์ปจํ…Œ์ด๋„ˆ ์—๊ฒŒ ์ œ์–ด์˜ ๊ถŒํ•œ์„ ๋„˜๊น€์œผ๋กœ์จ, IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์•Œ์•„์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์•Œ์•„์„œ ์ฃผ์ž…์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.- ๊ฐ์ฒด์˜ ์ œ์–ด๋ฅผ ์™ธ๋ถ€์—์„œ ๋‹ด๋‹นํ•˜๊ฒŒ ํ•œ๋‹ค๋Š” ํญ ๋„“์€ ๊ฐœ๋…- IoC Container์—๊ฒŒ ์ œ์–ด ๊ถŒํ•œ์„ ๋„˜๊ธด๋‹ค๋Š” ๊ฐœ๋… * IoC Container : Spring Framework๊ฐ€ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์ž๋™์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ "Bean"๋“ค์˜ ์ง‘ํ•ฉ๊ณผ "Bean"๋“ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ณต๊ฐ„์ด๋‹ค.* Bean : Spring Framework๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋“ค์„ "..
[Spring Framework] Spring & Spring Framework ์ฐจ์ด
ยท
๐ŸŒณSpring/๐ŸŒฑSpring Framework
๊ฐœ์š”Spring๊ณผ Spring Framework ๋‹จ์–ด์— ๋Œ€ํ•ด ๋ช…ํ™•ํ•œ ์ฐจ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ Spring Framework๋ฅผ ๋”์šฑ ์‰ฝ๊ฒŒ ์ดํ•ด๋ฅผ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•˜์—ฌ ์ด ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Œ. 1. Spring ์ด๋ž€?Spring์˜ ์ฒ˜์Œ์€ Spring Framework๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘์„ ํ–ˆ์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ Spring Framework ๊ธฐ๋ฐ˜ ์œ„์— ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ถ”๊ฐ€ ๋˜๋ฉด์„œ Spring์€ Spring Framework ๋ฐ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค์„ ๋‹ค ํฌ๊ด„ํ•˜๋Š” ๋‹จ์–ด๊ฐ€ ๋˜์—ˆ๋‹ค.- Spring์€ Spring Framework ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•์ด ๋œ ํ”„๋กœ์ ํŠธ๋“ค์„ ์ผ์ปซ๋Š”๋‹ค.- Spring์€ ์˜คํ”ˆ์†Œ์Šค์ด๋ฉฐ, Spring ๋‚ด์˜ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ๋˜ํ•œ ์˜คํ”ˆ์†Œ์Šค์ด๋‹ค. 2. Framework ๋ž€?- ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ..