Spring Boot Devtools는 스프링 애플리케이션 개발 속도를 높이기 위해 제공되는 도구입니다. **인텔리제이(IntelliJ IDEA)**에서 Spring Boot를 사용하는 경우, Devtools는 선택 사항이지만, 개발 편의성을 크게 향상시킬 수 있으므로 권장됩니다.
Spring Boot Devtools란?
Spring Boot Devtools는 개발 편의를 위해 제공되는 Spring Boot의 의존성으로, 다음과 같은 기능을 제공합니다:
- 자동 재시작(Hot Restart):
- 코드를 수정하면 애플리케이션을 자동으로 다시 시작해 개발 속도를 높입니다.
- 라이브 리로드(Live Reload):
- HTML, CSS, JavaScript 파일을 수정하면 브라우저를 자동으로 새로고침합니다.
- 캐시 비활성화:
- 개발 모드에서 템플릿 엔진(Thymeleaf, FreeMarker 등)과 같은 리소스의 캐시를 비활성화합니다.
- H2 콘솔 자동 활성화:
- H2 데이터베이스 콘솔을 편리하게 사용할 수 있습니다.
IntelliJ에서 Spring Boot Devtools가 필요한 경우
- 자동 재시작이 필요한 경우:
- 프로젝트를 개발하면서 코드를 수정할 때마다 수동으로 애플리케이션을 재실행하는 대신 자동으로 처리하고 싶다면 Devtools가 유용합니다.
- 템플릿 캐시를 비활성화하고 싶은 경우:
- HTML, CSS 등을 수정할 때 즉시 변경 사항을 확인하려면 Devtools가 필요합니다.
- 브라우저 자동 새로고침:
- 브라우저에서 리로드 없이도 변경된 정적 리소스를 반영하고 싶다면 Spring Boot Devtools가 적합합니다.
설치 방법
Spring Boot Devtools는 Spring Boot Starter 프로젝트에서 쉽게 추가할 수 있습니다.
- Maven 프로젝트: pom.xml에 다음 의존성을 추가합니다:
- scope가 runtime인 이유는 Devtools가 개발 환경에서만 활성화되고, 배포 시 제외되도록 설정하기 위함입니다.
-
xml코드 복사<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>
- Gradle 프로젝트: build.gradle에 다음을 추가합니다:
-
groovy코드 복사dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' }
- 스프링 초기화(SPRING INITIALIZR): Spring Initializr에서 프로젝트를 생성할 때 Spring Boot Devtools를 추가할 수 있습니다.
IntelliJ와 Devtools 설정
- 자동 재시작 활성화:
- IntelliJ에서 파일을 저장했을 때 Spring Boot Devtools가 변경 사항을 감지하도록 설정합니다.
- 설정 > Build, Execution, Deployment > Compiler > **"Build project automatically"**를 활성화합니다.
- (2020.1 이상) "Advanced Settings" > "Allow auto-make to start even when..." 옵션을 활성화합니다.
- LiveReload 활성화:
- LiveReload 브라우저 확장 프로그램을 설치해 자동 새로고침 기능을 사용할 수 있습니다.
Devtools를 꼭 설치해야 하나?
필수는 아니지만, 강력히 권장됩니다.
- 프로젝트가 크지 않고, 자동 재시작이나 브라우저 리로드가 필요하지 않다면 설치하지 않아도 괜찮습니다.
- 그러나 개발 생산성을 높이기 위해 Devtools를 사용하는 것이 일반적입니다.
특히, 반복적으로 애플리케이션을 재시작해야 하는 상황에서는 많은 시간을 절약할 수 있습니다.
주의사항
- 배포 시 Devtools 제외: Devtools는 개발 전용 도구이므로 프로덕션 환경에서는 포함되지 않도록 해야 합니다. Maven이나 Gradle 설정에서 기본적으로 runtime 스코프로 설정하면 자동으로 제외됩니다.
결론
인텔리제이와 함께 Spring Boot Devtools를 사용하면 생산성을 높이는 데 큰 도움이 됩니다. 개발 단계에서 자주 애플리케이션을 재시작하거나 프런트엔드와 백엔드가 상호작용할 때 빠른 변경 반영이 필요하다면 설치를 고려하세요! 🚀