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ํ์ฌ ๋ฐ์ํจ.