๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์š”์ฒญํ๋ฆ„

 

 

์ธํ„ฐ์…‰ํ„ฐ์™€ ํ•„ํ„ฐ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ?

 

Filter

ServletContainer์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰๋จ

์ •์  ์ž์›(CSS, JS ๋“ฑ)๋„ ๋‹ค ์ง€๋‚˜๊ฐ

๋ชฉ์ : ๋ณด์•ˆ ํ•„ํ„ฐ, ํ† ํฐ ๊ฒ€์‚ฌ, ์š”์ฒญ ๋กœ๊น…, GZIP ์••์ถ• ๋“ฑ ์ „์—ญ ์ฒ˜๋ฆฌ

๋‹จ์ : Spring MVC ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ์—ฐ๋™ ์–ด๋ ค์›€, ์‹ค์ˆ˜ ์‹œ ๋ชจ๋“  ์š”์ฒญ ์ฐจ๋‹จ ์œ„ํ—˜

 

Interceptor

DispatcherServlet ๋‚ด๋ถ€์—์„œ๋งŒ ์ž‘๋™ํ•จ

์ •์  ์ž์›์€ ์ž๋™ ์ œ์™ธ๋จ

๋ชฉ์ : ๋กœ๊ทธ์ธ ์ฒดํฌ, ๊ถŒํ•œ ๊ฒ€์‚ฌ, API ๋กœ๊น… ๋“ฑ MVC ๊ตฌ์กฐ์™€ ๋งž๋Š” ์ฒ˜๋ฆฌ

์žฅ์ : Spring์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ์„ธ์…˜, ๋ชจ๋ธ ๋“ฑ๊ณผ ์ž˜ ์—ฐ๋™๋จ

 

์š”์ ๋น„๊ต

ํ•ญ๋ชฉ Filter Interceptor
์‹คํ–‰์œ„์น˜ DispatcherServlet ์ด์ „ DispatcherServlet ๋‚ด๋ถ€
์ •์  ์ž์› ํ†ต๊ณผ ์—ฌ๋ถ€ ์ง์ ‘ ๊ฑธ๋Ÿฌ์•ผ ํ•จ ์ž๋™ ์ œ์™ธ
์˜ˆ์™ธ ํ•ธ๋“ค๋กœ ์—ฐ๋™ ๋ถˆํŽธํ•จ ์ž˜ ์—ฐ๋™๋จ
์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ์ œ์–ด ๋ถˆํŽธ ์ ํ•ฉ
์‚ฌ์šฉ ๋ชฉ์  ๋ณด์•ˆ/๋กœ๊น…/ํ—ค๋” ๊ฒ€์‚ฌ ์ธ์ฆ/์ ‘๊ทผ์ œ์–ด/์š”์ฒญ ํ›„ ์ฒ˜๋ฆฌ

 

 

๊ถŒํ•œ์ด๋‚˜ ๋กœ๊ทธ์ธ ์ฒดํฌ ๊ฐ™์€๊ณณ์—์„  ์™œ ์ธํ„ฐ์…‰ํ„ฐ๊ฐ€ ๋” ๋‚˜์„๊นŒ?

์ด์œ  ์„ค๋ช…
DispatcherServlet ์ดํ›„ ์‹คํ–‰๋จ ์ฆ‰, ์ •์  ๋ฆฌ์†Œ์Šค ๊ฐ™์€ ๊ฑฐ ์ž๋™์œผ๋กœ ์ œ์™ธ๋จ (๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฑธ๋Ÿฌ๋‚ผ ํ•„์š” ์—†์Œ)
MVC ๊ตฌ์กฐ์— ์ž˜ ๋งž์Œ ์ปจํŠธ๋กค๋Ÿฌ ์•ž/๋’ค์— ๋ถ™์–ด์„œ ModelAndView, request, session ํ™œ์šฉ์— ์ตœ์ 
์—๋Ÿฌ ํ•ธ๋“ค๋ง ์—ฐ๋™์ด ์ž˜ ๋จ ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ @ExceptionHandler, @ControllerAdvice์™€ ๊ถํ•ฉ ์ข‹์Œ
Spring Boot๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„ํ„ฐ๋ณด๋‹ค ์ธํ„ฐ์…‰ํ„ฐ์— ์ตœ์ ํ™”๋จ ๋Œ€๋ถ€๋ถ„ ๊ตฌ์กฐ๊ฐ€ @Controller, @RestController ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์—

 

์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค URL์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ์ œ์–ดํ•˜๋Š” ๊ฑด
Spring MVC ์ปจํŠธ๋กค๋Ÿฌ ๊ธฐ์ค€์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ตฌ์กฐ๋‹ˆ๊นŒ ๋‹น์—ฐํžˆ Interceptor๊ฐ€ ๋งž๋Š” ๋„๊ตฌ๋‹ค.

๋ฐ˜์‘ํ˜•