[Spring] Filter, Interceptor, AOP ์ •๋ฆฌ

[Spring] Filter, Interceptor, AOP ์ •๋ฆฌ

๊ฐœ์š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋ฉด ํŠน์ • ๋‹จ๊ณ„์—์„œ ์ž‘๋™ํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์„ ๊ณตํ†ต์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด Filter , Interceptor, AOP ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๊ณตํ†ต์œผ๋กœ ์ ์šฉ๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ค‘๋ณต์ด ๋Š˜์–ด๋‚˜๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ์ด ์„ธ ๊ธฐ์ˆ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์ค‘๋ณต๋˜๋Š” ๋กœ์ง์„ ์ œ๊ฑฐํ•˜๊ณ , ํŠน์ • ๋‹จ๊ณ„์—์„œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ด ์„ธ ๊ฐ€์ง€ ๊ธฐ์ˆ ์˜ ์ •์˜์™€ ํŠน์ง•, ๊ฐ ์‚ฌ์šฉ ์ผ€์ด์Šค๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์‹œ์  ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด Request → Filter → Servlet → Interceptor → AOP → Controller ์ˆœ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ Filter๋Š” Spring๊ณผ ๋ฌด๊ด€ํ•œ Web Cont..

  • textsms
[Spring] ์Šค์›จ๊ฑฐ(Swagger) ์„ค์ •

[Spring] ์Šค์›จ๊ฑฐ(Swagger) ์„ค์ •

๋งค๋ฒˆ Thymeleaf, Jsp, Pebble, Freemarker ๋“ฑ๋“ฑ ํ…œํ”Œ๋ฆฟ ์—”์ง„๋งŒ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ํผ๋ธ”๋ฆฌ์‹ฑ ์ž‘์—…๋ณธ์„ ๋ฐ›์•„์„œ ์‚ฌ์šฉ์ž ํ™”๋ฉด์„ ์™„์„ฑํ•˜๋Š” ์ž‘์—…์„ ์ฃผ๋กœ ํ•˜๊ฒŒ ๋์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ์ƒˆ๋กญ๊ฒŒ JPA์™€ React ๋˜๋Š” Vue๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Back / Front๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜๊ณ  Back ์ชฝ์—์„œ๋Š” Front ์ชฝ์œผ๋กœ API ๊ทœ๊ฒฉ์„œ๋งŒ ์ „๋‹ฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋‹ˆ๊นŒ ์‹œ๊ฐ„์  ์—ฌ์œ ๊ฐ€ ๋งŽ์ง€๊ฐ€ ์•Š์•„์„œ API ์—ฐ๋™๊ทœ๊ฒฉ์„œ๊นŒ์ง€ ์ž‘์„ฑํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (ํ•‘๊ณ„์ธ๊ฑฐ ๋‹ค๋“ค ์•„์‹œ์ฃ ?) ํ•ด์„œ.. ์ด๋ฒˆ ๊ธฐํšŒ์— ์Šค์›จ๊ฑฐ(Swagger) API๋ฅผ ํ™œ์šฉํ•ด์„œ API ์—ฐ๋™๊ทœ๊ฒฉ์„œ๋Š” Swagger์—๊ฒŒ ๋งก๊ฒจ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. #1. Swagger ์„ค์ • 1. gradle ์„ค์ • // swagger implementa..

  • textsms
[Spring] @Controller, @RestController ์ฐจ์ด์ 

[Spring] @Controller, @RestController ์ฐจ์ด์ 

Spring์˜ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ MVC ํ”„๋ ˆ์ž„ ์›Œํฌ๋Š” RESTful ์›น ์„œ๋น„์Šค ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ Spring MVC ์ปจํŠธ๋กค๋Ÿฌ์™€ RESTful ์›น ์„œ๋น„์Šค ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ HTTP Response Body๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด MVC ์ปจํŠธ๋กค๋Ÿฌ๋Š” View ๊ธฐ์ˆ ์— ์˜์กดํ•˜์ง€๋งŒ RESTful ์›น ์„œ๋น„์Šค ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋‹จ์ˆœํžˆ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋Š” JSON / XML๋กœ HTTP ์‘๋‹ต์— ์ง์ ‘ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. @Controller(Spring MVC Controller) 1. Controller - View ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ํ†ตํ•ด Spring MVC Container๋Š” Client์˜ ์š”์ฒญ์œผ๋กœ๋ถ€ํ„ฐ View๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Client๋Š” URI ํ˜•์‹์œผ๋กœ ์›น ์„œ๋น„์Šค์— ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. Ma..

  • textsms
[Spring] ์Šคํ”„๋ง์ด๋ž€ ?

[Spring] ์Šคํ”„๋ง์ด๋ž€ ?

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

  • textsms