새로운 개인 프로젝트를 시작하며 종속성을 추가하는 과정에서, Spring Boot DevTools의 주요 기능과 장점에 대해 정리해보았습니다. 처음에는 “나는 어차피 코드 수정하면 서버 재시작하는 습관이 있는데, 굳이 DevTools를 써야 할까?” 라는 생각이 들었습니다. 이미 DevTools를 사용 중인 분들에게는 익숙한 내용일 수도 있지만,
저처럼 아직 사용해보지 않았거나 도입을 고민 중인 분들에게는 도움이 될 수 있을 것 같아 이 글을 작성하게 되었습니다.
앞으로 직접 사용해본 후기를 추가로 남겨보겠습니다 😊
🛠 Spring Boot DevTools
개발할 때마다 코드 수정 → 서버 재시작 → 브라우저 새로고침 의 반복
매번 손으로 하다 보면 귀찮고 시간도 아까운 것 같습니다.
이럴 때 개발자 경험을 확 바꿔주는 도구가 바로 DevTools 입니다
🔍 DevTools란?
Spring Boot DevTools는 개발 생산성을 높이기 위한 도구 모음입니다.
프로덕션 환경에서는 사용하지 않고, 로컬 개발 환경에서만 동작합니다.
✅ DevTools의 주요 기능 및 장점
1. 🔄 자동 재시작 (Auto Restart)
- Java 코드나 설정 파일(.java, .yml, .properties 등)을 저장하면 자동으로 서버가 재시작됩니다.
- 매번 수동으로 서버를 껐다 켜지 않아도 되기 때문에 시간을 절약할 수 있어요.
- 특히 설정이나 Bean 클래스 수정 시 진가를 발휘합니다!
💡 코드 수정 → 저장만 하면 바로 서버 반영!
2. ⚡ 정적 리소스 핫 리로딩
- HTML, CSS, JavaScript, Thymeleaf 같은 정적 파일은 서버를 재시작하지 않아도 자동으로 반영됩니다.
- /static 또는 /templates 디렉터리에 있는 리소스를 수정하고 저장한 뒤 브라우저 새로고침만 하면 끝!
3. 🔁 템플릿 캐시 자동 비활성화
- Thymeleaf, Freemarker 등 템플릿 엔진은 기본적으로 캐시가 켜져 있어 반영이 느릴 수 있어요.
- DevTools는 개발 중에는 템플릿 캐시를 자동으로 꺼주기 때문에 템플릿 수정 내용이 바로 반영됩니다.
4. 🧼 의존성 Bean 자동 재등록
- 변경된 클래스에 의존하던 Bean들도 자동으로 다시 로딩됩니다.
- Bean 초기화 문제로 인한 이상한 오류도 줄어듭니다.
💭 왜 체감이 안 될 수 있을까?
- 이미 손으로 서버 재시작하는 습관이 있다면 효과를 못 느낄 수 있습니다.
- 정적 리소스를 자주 수정하지 않는다면 체감도가 낮을 수도 있습니다.
- 라이브 리로드 (브라우저 자동 새로고침)는 별도 설정이나 확장 플러그인이 필요합니다.
📦 의존성 추가 방법
1. Intellij Spring Initializr에서 체크
Spring Boot DevTools 옵션을 체크하면 자동으로 추가됩니다.
2. build.gradle 수동 추가
dependencies {
developmentOnly 'org.springframework.boot:spring-boot-devtools'
}
🔒 주의할 점
- 운영 환경에서는 절대 사용 금지!
DevTools는 개발용 도구이기 때문에, build.gradle에 반드시 developmentOnly로 설정!