Spring/개인 공부

자동 서버 재시작을 위한 developmentOnly : spring-boot-devtools

코딩하는냥이 2025. 6. 30. 11:56
반응형

1. spring-boot-devtools란?

  • Spring Boot DevTools는 스프링 부트 개발을 더 쉽고 빠르게 도와주는 개발용 툴입니다.
  • 주로 개발 환경에서만 사용하며, 프로덕션(운영) 환경에서는 사용하지 않습니다.
  • 주된 기능은 자동 재시작, 라이브 리로드, 속성 캐시 비활성화 등입니다.

2. 왜 developmentOnly로 지정할까?

  • developmentOnly는 개발환경에서만 해당 라이브러리가 적용되도록 하는 Gradle의 플러그인(구성 방식)입니다.
  • 이 옵션을 사용하면, 빌드해서 배포할 때(jar, war 생성 시) 이 라이브러리가 포함되지 않습니다.
  • 즉, 운영 환경에 DevTools가 포함되지 않도록 방지하는 것이죠.

3. 주요 기능

(1) 자동 재시작(Automatic Restart)

  • 소스코드, 설정 파일이 변경되면 서버가 자동으로 재시작됩니다.
  • 매번 서버를 껐다 켤 필요 없이 저장만 해도 변경이 반영됩니다.

(2) 라이브 리로드(LiveReload)

  • HTML, JS, CSS 등 프론트 파일을 변경할 때 브라우저도 자동으로 새로고침 해줍니다.
  • 별도 브라우저 플러그인 설치 시 더욱 편리하게 사용 가능.

(3) 캐시 비활성화 등

  • 템플릿 엔진(Thymeleaf, Freemarker 등)의 캐시가 자동으로 꺼집니다.
  • 그래서 화면 수정 시 새로고침만 해도 즉시 반영됩니다.

4. build.gradle에서의 작성 예시

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    // 개발 환경에서만 사용
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
}

5. 주의사항

  • 운영 환경(Production)에는 절대 포함되지 않게 해야 합니다.
  • developmentOnly로 지정하면, 개발용 서버에서는 동작하지만, 배포용 파일에는 포함되지 않습니다.
  • IntelliJ, VSCode 등에서 사용할 때 자동 재시작 기능이 예상대로 작동하지 않을 수도 있는데, 이때는 설정을 확인해야 합니다.

6. 한 줄 요약

spring-boot-devtools는 개발 편의를 위해 제공되는 라이브러리이며, developmentOnly로 설정하면 운영 환경에는 포함되지 않고 개발 시에만 자동 재시작 등 다양한 편의 기능을 제공합니다.