๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[SpringBoot] devtools๋ž€?

category Web/SpringBoot 2023. 12. 17. 17:57

SpringBoot DevTools

- SpringBoot์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆ์ด๋‹ค. spring-boot-devtools ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

- ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก๋˜๋Š” ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•œ ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด, ์ž๋™์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์žฌ์‹œ์ž‘ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—๋„ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

- ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด, ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์—ฌ์ฃผ๋Š” ๋‚ด์šฉ(๋ฌธ๊ตฌ ๋“ฑ)๋„ ์ˆ˜์ •ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์žฌ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค. ๋•Œ๋ฌธ์— devtools๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์—ฌ์ฃผ๋Š” ๋‚ด์šฉ์€ ์ˆ˜์ • ์‹œ ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘ํ•ด์ฃผ์–ด ๋ธŒ๋ผ์šฐ์ €์— ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ

SpringBoot DevTools๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์€ ํฌ๊ฒŒ 5๊ฐ€์ง€์ด๋‹ค.

- Property Defaults

- Automatic Restart

- Live Reload

- Global Settings

- Remote Applications

5๊ฐ€์ง€ ์ค‘ ์ƒ์œ„ 3๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์ฃผ๋กœ ์“ฐ์ธ๋‹ค.

 

1. Property Defaults (๊ฐœ๋ฐœ ์‹œ์ /๋ฐฐํฌ ์‹œ์ ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์— ๋งž์ถฐ ์„ค์ •ํ•ด์ค€๋‹ค.)

- Spring์—์„œ ์ œ๊ณตํ•˜๋Š” thymeleaf๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์บ์‹ฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋•Œ๋ฌธ์— ํƒ€์ž„๋ฆฌํ”„ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ๋„ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ํƒ€์ž„๋ฆฌํ”„์˜ ์บ์‹ฑ ๊ธฐ๋Šฅ์„ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” application.yml์—์„œ spring.tymeleaf.cache ๋ฅผ false๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ devtools๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ œ๊ณตํ•œ๋‹ค. ์ฆ‰, ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ์บ์‹ฑ ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ๊บผ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

2. Automatic Restart

- ํŒŒ์ผ ์ˆ˜์ • ํ›„ ์ €์žฅ์„ ํ•˜๋ฉด, Classpath์— ์กด์žฌํ•˜๋Š” ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ restart ํ•ด์ค€๋‹ค.

- ํด๋ž˜์Šค๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์–ด main์Šค๋ ˆ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ restartedMain ์Šค๋ ˆ๋“œ๋กœ ๊ธฐ๋™๋œ๋‹ค.

devtools ๋ฐ˜์˜ ์ „ ์“ฐ๋ ˆ๋“œ : main์“ฐ๋ ˆ๋“œ

devtools ๋ฐ˜์˜ ํ›„ ์“ฐ๋ ˆ๋“œ : restart main ์“ฐ๋ ˆ๋“œ

 

 

3. Live Reload

- ๋ณ„๋„์˜ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ์—†์ด, VSCode์˜ live reload ์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์„ค์ • ๋ฐฉ๋ฒ•

1. Gradle์— ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

developmentOnly 'org.springframework.boot:spring-boot-devtools'

 

2. ์†Œ์Šค์ฝ”๋“œ ๋ณ€๊ฒฝ ์‹œ ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋˜๊ธฐ ์œ„ํ•œ ์„ค์ •

2-1. Settings > Advanced Settings > Allow autho-make to start~ ์ฒดํฌ

 

2-2. Settings > Compiler > Build project automatically ์ฒดํฌ

 

 

๊ฒฐ๋ก 

ํ•œ ๋งˆ๋””๋กœ "์†Œ์Šค์ฝ”๋“œ ์ž๋™ ๋ฐ˜์˜"์„ ์œ„ํ•ด DevTools๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

1. ํƒ€์ž„๋ฆฌํ”„ ์บ์‹ฑ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœ ์‹œ์ ์—์„œ ํ•ด์ œํ•ด์ฃผ๊ณ  live reload ๊ธฐ๋Šฅ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋จ.

2. ํŒŒ์ผ ์ˆ˜์ •ํ•˜๋ฉด ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ restartํ•˜์—ฌ ๋ฐ˜์˜ํ•จ.