spring-boot-devtools - 서버 재시작 없이 프론트 반영하는 법

반응형

Sping boot를 이용하면서 어플리케이션의 프론트 변경사항이 변경될 때

서버를 종료했다 다시 시작했다 하는 건 상당히 귀찮다...;;

하지만 이 귀찮은 부분을 spring-boot-devtools 라이브러리재시작하지 않고 페이지를 새로고침함으로써 변경사항을 반영시킬 수 있다.

 

spring-boot-devtools 적용하기

적용 방법은 정말 간단하다.

 

1. build.gradle에 의존성 추가

아래의 코드를 build.gradle의 dependencies에 추가합니다.

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

 

2. IntelliJ 환경 설정

1. File -> Setting -> Advanced Settings -> Compiler안의 아래 항목 활성화

 

2. File -> Setting -> Build, Execution, Deployment -> Compiler 에서 아래 항목 활성화

 

3. LiveReload++ 설치

 

LiveReload++

Watches a port and reloads the page if needed.

chrome.google.com

위 사이트로 접속후 LiveReload++ 크롬 확장 프로그램을 설치합니다.

이러면 모든 설정을 완료되었습니다.

 

이제 코드 수정 시 3 ~ 5초 후에 페이즈를 새로고침하면 변경한 코드가 반영되는 것을 볼 수 있습니다.


spring-boot-devtools 옵션 설정

application.properties 나 application.yml에 사용할 옵션을 작성해주면 된다.

 

devtools.livereload.enabled: true

이 설정을 true로 설정하면, 소스 코드나 리소스 파일이 변경되었을 때 자동으로 웹 브라우저가 새로고침되어 변경사항을 바로 확인할 수 있다.

 

devtools.thymeleaf.cache: false

이 설정을 false로 설정하면, Thymeleaf 템플릿의 캐시를 비활성화하여 템플릿 파일이 변경될 때마다 바로 변경사항을 반영할 수 있다.

 

devtools.restart.enabled: true

이 설정을 true로 설정하면, 클래스패스에 있는 파일이 변경될 때 애플리케이션을 자동으로 재시작한다.