ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

Spring Boot Devtools

 

Spring Boot Devtools는 스프링 애플리케이션 개발 속도를 높이기 위해 제공되는 도구입니다. **인텔리제이(IntelliJ IDEA)**에서 Spring Boot를 사용하는 경우, Devtools는 선택 사항이지만, 개발 편의성을 크게 향상시킬 수 있으므로 권장됩니다.

 

Spring Boot Devtools란?

Spring Boot Devtools는 개발 편의를 위해 제공되는 Spring Boot의 의존성으로, 다음과 같은 기능을 제공합니다:

  1. 자동 재시작(Hot Restart):
    • 코드를 수정하면 애플리케이션을 자동으로 다시 시작해 개발 속도를 높입니다.
  2. 라이브 리로드(Live Reload):
    • HTML, CSS, JavaScript 파일을 수정하면 브라우저를 자동으로 새로고침합니다.
  3. 캐시 비활성화:
    • 개발 모드에서 템플릿 엔진(Thymeleaf, FreeMarker 등)과 같은 리소스의 캐시를 비활성화합니다.
  4. H2 콘솔 자동 활성화:
    • H2 데이터베이스 콘솔을 편리하게 사용할 수 있습니다.

IntelliJ에서 Spring Boot Devtools가 필요한 경우

  1. 자동 재시작이 필요한 경우:
    • 프로젝트를 개발하면서 코드를 수정할 때마다 수동으로 애플리케이션을 재실행하는 대신 자동으로 처리하고 싶다면 Devtools가 유용합니다.
  2. 템플릿 캐시를 비활성화하고 싶은 경우:
    • HTML, CSS 등을 수정할 때 즉시 변경 사항을 확인하려면 Devtools가 필요합니다.
  3. 브라우저 자동 새로고침:
    • 브라우저에서 리로드 없이도 변경된 정적 리소스를 반영하고 싶다면 Spring Boot Devtools가 적합합니다.

설치 방법

Spring Boot Devtools는 Spring Boot Starter 프로젝트에서 쉽게 추가할 수 있습니다.

  1. Maven 프로젝트: pom.xml에 다음 의존성을 추가합니다:
    • scope가 runtime인 이유는 Devtools가 개발 환경에서만 활성화되고, 배포 시 제외되도록 설정하기 위함입니다.
  2. xml
    코드 복사
    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>
  3. Gradle 프로젝트: build.gradle에 다음을 추가합니다:
  4. groovy
    코드 복사
    dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' }
  5. 스프링 초기화(SPRING INITIALIZR): Spring Initializr에서 프로젝트를 생성할 때 Spring Boot Devtools를 추가할 수 있습니다.

IntelliJ와 Devtools 설정

  1. 자동 재시작 활성화:
    • IntelliJ에서 파일을 저장했을 때 Spring Boot Devtools가 변경 사항을 감지하도록 설정합니다.
    • 설정 > Build, Execution, Deployment > Compiler > **"Build project automatically"**를 활성화합니다.
    • (2020.1 이상) "Advanced Settings" > "Allow auto-make to start even when..." 옵션을 활성화합니다.
  2. LiveReload 활성화:
    • LiveReload 브라우저 확장 프로그램을 설치해 자동 새로고침 기능을 사용할 수 있습니다.

Devtools를 꼭 설치해야 하나?

필수는 아니지만, 강력히 권장됩니다.

  • 프로젝트가 크지 않고, 자동 재시작이나 브라우저 리로드가 필요하지 않다면 설치하지 않아도 괜찮습니다.
  • 그러나 개발 생산성을 높이기 위해 Devtools를 사용하는 것이 일반적입니다.
    특히, 반복적으로 애플리케이션을 재시작해야 하는 상황에서는 많은 시간을 절약할 수 있습니다.

주의사항

  • 배포 시 Devtools 제외: Devtools는 개발 전용 도구이므로 프로덕션 환경에서는 포함되지 않도록 해야 합니다. Maven이나 Gradle 설정에서 기본적으로 runtime 스코프로 설정하면 자동으로 제외됩니다.

결론

인텔리제이와 함께 Spring Boot Devtools를 사용하면 생산성을 높이는 데 큰 도움이 됩니다. 개발 단계에서 자주 애플리케이션을 재시작하거나 프런트엔드와 백엔드가 상호작용할 때 빠른 변경 반영이 필요하다면 설치를 고려하세요! 🚀

728x90