[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
[Java] ์Šค์ผ€์ค„๋Ÿฌ ๋ฐฐ์น˜

[Java] ์Šค์ผ€์ค„๋Ÿฌ ๋ฐฐ์น˜

ํฌ๋ก  / ์Šค์ผ€์ค„๋Ÿฌ (๋ฐฐ์น˜) ์‹œ๋ฆฌ์ฆˆ Job Scheduler ํฌ๋ก  (Cron) ๊ณผ ํฌ๋ก  ํ‘œํ˜„์‹ Spring Job Scheduler #1. ์žก ์Šค์ผ€์ค„๋Ÿฌ? ํฌ๋ก  ํ‘œํ˜„์‹? ์‹ค๋ฌด์—์„œ๋Š” ๋ฐฐ์น˜, ํฌ๋ก , ์Šค์ผ€์ค„๋Ÿฌ, ์˜ˆ์•ฝ์ž‘์—…, ์žก ๋“ฑ์œผ๋กœ ๋ถ€๋ฅด๋Š”๋ฐ ์ผ๋‹จ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ค„๋Ÿฌ (Scheduler), ์žก ์Šค์ผ€์ค„๋Ÿฌ, ์˜ˆ์•ฝ์ž‘์—… : ์ƒˆ๋ฒฝ 3์‹œ์— ์—…๋ฐ์ดํŠธ ๋“ฑ๊ณผ ๊ฐ™์€ ํŠน์ • ์‹œ๊ฐ„/์ฃผ๊ธฐ์— ์–ด๋–ค ์ผ์„ ํ•˜๋Š” ํ”ํžˆ ์˜ˆ์•ฝ(๋ฐ˜๋ณต/๋น„๋ฐ˜๋ณต) ํ•˜๋Š” ์ž‘์—…(Job)๋“ค์„ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ์ฃผ์ฒด์ž…๋‹ˆ๋‹ค. ํฌ๋ก  (Cron) : https://en.wikipedia.org/wiki/Cron ๋ณธ๋ž˜๋Š” ์˜๋ฏธ๋กœ๋Š” ์œ ๋‹‰์Šค๊ณ„์—ด์˜ ์žก์Šค์ผ€์ค„๋Ÿฌ ์‹œ์Šคํ…œ์ด์ง€๋งŒ, ํ˜„์žฌ๋Š” ๊ทธ๋ƒฅ ์žก ์Šค์ผ€์ค„๋Ÿฌ์™€ ๋™์ผํ•œ ์˜๋ฏธ์ฒ˜๋Ÿผ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ (Batch) : ์ผ๊ด„์ฒ˜๋ฆฌ๋กœ ๋Œ€๋Ÿ‰์˜ ์ž‘์—…์„ ํ•˜๋Š” ..

  • textsms