
SpringBoot에 DevTools 셋팅을 해보겠습니다.
자동 재시작 (Automatic Restart):
클래스 로더 최적화 (Classloader Optimizations):
캐싱 비활성화 (Caching Disabling):
로그 상세화 (Enhanced Logging):
글로벌 설정 (Global Settings):
.spring-boot-devtools.properties 파일 등을 통해 전역적인 개발 환경 설정을 관리할 수 있습니다.scope=runtime 또는 optional=true로 설정하여 프로덕션 빌드에서 제외하는 것이 일반적입니다.)결론적으로
REST API 개발은 백엔드 로직의 반복적인 수정과 테스트를 수반합니다.
spring-boot-devtools는 이러한 반복 작업을 줄여주고, 재시작 시간을 단축하며, 개발 과정에서 발생할 수 있는 캐싱 문제를 예방하여 전반적인 개발 효율성과 생산성을 크게 향상시킵니다. 따라서 타임리프 사용 여부와 관계없이 REST API 기반의 Spring Boot 프로젝트에서도 DevTools를 사용하는 것은 매우 권장됩니다.
DevTools의 LiveReload 기능이 제일 많이 쓰입니다.
LiveReload 기능은 정적소스(html, css, js)에 변화가 있을 때 application이 자동으로 브라우저 새로 고침을 트리거 할 수 있게 해주는 프로토콜입니다.
이제 설정 방법을 알아보겠습니다. 설정 방법은 간단합니다.
0) build.gradle
dev 모드에서만 사용하게 developmentOnly 로 라이브러리를 사용해야 한다!
developmentOnly 'org.springframework.boot:spring-boot-devtools'
1) Setting > Build auto 셋팅

2) Advanced Setting > Allow auto-make to start even.. 셋팅

4) LiveReload 브라우저 확장프로그램 설치

Thymeleaf를 사용한 html 파일 수정에도 바로 reload가 적용되기 위해서는 추가 작업이 필요합니다.
0) application.yml
: Thymeleaf가 캐싱해서 가져오는 것 막기
spring:
devtools:
livereload:
enabled: true
# thymeleaf cache 비활성화
thymeleaf:
cache: false
실제로 위 방식으로 해봤지만 나는 잘 되지 않았다.
그래서 수동으로 리컴파일을 하니 잘되고 있다.. 왜 안되는지 다른 분들이 좀 알려주시면 감사하겠다. ^^;;
수동으로 빌드하는 방법

html 파일을 수정한 후 Build탭을 확인해 보면 아래 사진과 같이 해당 파일의 Recompile(ctrl+shift+F9)이 활성화하면 된다.
클릭하고 확인하면 정상적으로 반영이 됨을 확인 할 수 있다!
재고
1) `Edit Configuration` > `Modify options`
`On 'Update' action`, `On 'frame' deactivation` -> `Udate resources`

