๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1๏ธโƒฃ Web/Spring

[SpringBoot] spring-boot-devtools ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

by seolhee2750 2022. 4. 26.

* ์ด ๊ธ€์€ MacOS, intelliJ, Gradle์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

 

devtools ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Property Defaults
  • Automatic Restart
  • Live Reload
  • Global Settings
  • Remote Applications

์—ฌ๊ธฐ์„œ ๋‚˜๋Š” Automatic Restart์™€ LiveReload ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ

์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ํ”„๋ก ํŠธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ ์ž ํ–ˆ๋‹ค.

 

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์ผ๋“ค์€ ์ •๋ง ๊ฐ„๋‹จํ•œ๋ฐ,

๋„๋Œ€์ฒด ์™œ์ธ์ง€ ์ธํ„ฐ๋„ท์— ๋‚˜์™€์žˆ๋Š” ๊ธ€๋“ค์„ ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋ฉด ์ „๋ถ€ ๋ง์„ ์•ˆ๋“ค์—ˆ๋‹ค,,

๊ทธ๋ž˜์„œ 2์‹œ๊ฐ„ ๋„˜๊ฒŒ ์”จ๋ฆ„ํ•˜์—ฌ ์„ฑ๊ณตํ–ˆ๊ณ ,, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค,,๐Ÿซ 


๐Ÿ“ devtools ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ restart, livereload ์‚ฌ์šฉ๋ฒ•

[1] build.gradle์— ์˜์กด์„ฑ ์ถ”๊ฐ€

์œ„์™€ ๊ฐ™์ด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ build.gradle ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

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

 

[2] application.properties์— ์‚ฌ์šฉ ์—ฌ๋ถ€ ์ถ”๊ฐ€

์ด ์ˆœ์„œ๋Š” ํ•„์ˆ˜์ ์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‚˜,

์“ฐ๊ณ  ์‹ถ์„ ๋• true, ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ๋Š” false๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์œ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์–ด๋‘๋ฉด ์ข‹๋‹ค.

resources์— ์žˆ๋Š” application.properties ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

spring.devtools.livereload.enabled=true
spring.devtools.restart.enabled=true

 

[3] IntelliJ ํ™˜๊ฒฝ ์„ค์ •

์ธํ…”๋ฆฌ์ œ์ด ํ™”๋ฉด์—์„œ Shift+command+A ๋‹จ์ถ•ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ,

์œ„์™€ ๊ฐ™์ด '์•ก์…˜'์—์„œ 'ํ™˜๊ฒฝ ์„ค์ •'์„ ๊ฒ€์ƒ‰ํ•ด์ค€ ํ›„ ํด๋ฆญํ•ด์ฃผ์ž,

 

ํ™˜๊ฒฝ ์„ค์ •์—์„œ '๋นŒ๋“œ, ์‹คํ–‰, ๋ฐฐํฌ' ์•„๋ž˜์˜ '์ปดํŒŒ์ผ๋Ÿฌ'๋ฅผ ํด๋ฆญํ•˜๊ณ ,

'ํ”„๋กœ์ ํŠธ ์ž๋™ ๋นŒ๋“œ'๋ฅผ ์ฒดํฌ, '์ ์šฉ' ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค. (์›๋ž˜ ์ฒดํฌ ์•ˆ๋˜์–ด์žˆ์Œ)

 

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ™˜๊ฒฝ ์„ค์ •์˜ ๋งจ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” '๊ณ ๊ธ‰ ์„ค์ •'์—์„œ

'๊ฐœ๋ฐœ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ์—๋„ auto-make๊ฐ€ ์‹œ์ž‘๋˜๋„๋ก ํ—ˆ์šฉ'์„ ์ฒดํฌ,

'์ ์šฉ' ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค. (์›๋ž˜ ์ฒดํฌ ์•ˆ๋˜์–ด์žˆ์Œ)

 

[4] LiveReload++ ์„ค์น˜

https://chrome.google.com/webstore/detail/livereload%20%20/ciehpookapcdlakedibajeccomagbfab

 

LiveReload++

Watches a port and reloads the page if needed.

chrome.google.com

ํฌ๋กฌ์—์„œ ์œ„์˜ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ ์„ค์น˜ํ•ด์ค€๋‹ค.

 

๋Œ€๋ถ€๋ถ„์˜ ๋ธ”๋กœ๊ทธ์—์„œ๋Š” ์œ„์˜ ++๋ฒ„์ „ ๋ง๊ณ , ๊ทธ๋ƒฅ LiveReload๋ฅผ ์„ค์น˜ํ•˜๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ,

๋‚˜๋Š” LiveReload๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๊ณ„์† ์•Œ ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.ใ…œ

๊ทธ๋ž˜์„œ ์œ„์˜ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ•ด๋ณด๋‹ˆ ์„ฑ๊ณตํ•˜์—ฌ์„œ,,! ์œ„์˜ ๋ฒ„์ „์œผ๋กœ ๊ธฐ๋กํ•˜๊ฒ ๋‹ค.

 

์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜๊ณ , ํฌ๋กฌ์—์„œ ๊ณ ์ •ํ•ด์ฃผ๋ฉด ์œ„์™€ ๊ฐ™์ด ํ‘œ์‹œ๋˜๊ณ 

์ € ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์ดˆ๋ก์ƒ‰ ์ฒดํฌ ํ‘œ์‹œ๊ฐ€ ๋œจ๋ฉด์„œ ํ™œ์„ฑํ™” ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.


์œ„์™€ ๊ฐ™์ด ์„ค์ •์„ ๋งˆ์น˜๊ณ , ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—์„œ LiveReload๋ฅผ ํ™œ์„ฑํ™” ์‹œ์ผœ์ค€ ํ›„

ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด, ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํฌ๋กฌ์˜ ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š๊ณ ๋„

๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ”๋€ ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.๐Ÿ’ฅ

(๊ทผ๋ฐ ํ•œ 5์ดˆ์ •๋„ ๊ธฐ๋‹ค๋ ค์•ผํ•ด์„œ ์™„์ „ ๋ฐ”๋กœ๋ฐ”๋กœ๋Š” ์•„๋‹Œ,,

๊ทธ๋ž˜๋„ ์„œ๋ฒ„ ์žฌ์‹œ์ž‘๋ณด๋‹ค๋Š” ํ›จ์”ฌ ๊ฐ„ํŽธํ•œ ๊ฒƒ ๊ฐ™์Œ)

๋Œ“๊ธ€