IntelliJ 에 Devtools 적용하기

sarah·2022년 12월 29일
0
post-thumbnail

Devtools

  • Spring boot에서 제공하는 개발 편의를 위한 모듈

기능

  1. Property Defaults
    ⇒ spring boot에서 제공하는 라이브러리 캐시 기능을 사용하여 성능 향상. 대표적으로 thymeleaf와 같은 템플릿 엔진을 사용하면 반복적으로 구문 분석하지 않도록 템플릿을 컴파일하여 캐싱한다.
    그러나 개발 하는 경우 변경을 바로 확인하여야 하기에 별도의 설정을 해야 한다.
  2. Automatic Restart
    ⇒ 파일 수정 후 저장을 하면 Classpath에 존재하는 파일의 변경을 감지하고, 자동으로 서버를 restart 해준다. 설정을 통해 원하는 디렉토리만 트리거로 설정할 수도 있다.
  3. Live Reload
    ⇒ JS파일을 수정하기만 해도 자동으로 브라우저가 새로 고침된다. 내부적으로 live reload 서버를 두고 브라우저 확장프로그램과 통신하는 방식으로 동작한다.
  4. Global Settings
  5. Remote Application

IntellJ에 Devtools를 이용하여 자동빌드 적용하기

💡 [2022.2.2 버전 사용 중]

1. build.gradle에 의존성 추가

developmentOnly 'org.springframework.boot:spring-boot-devtools'

2. Settings 설정

(mac인 경우, Preferences)

  • Compiler - Build project automatically 체크

  • Advanced Settings - Allow auto-make to start even if developed application is currently running 체크

( 2021.2 버전부터 Registrycompiler.automake.allow.when.app.running 설정을 위에서 해야함)

3. Edit Configurations

  • Modify Options - On ‘Update’ action - Update classes and resources
  • Modify Options - On frame deactivation - Update classes and resources

4. yml에 타임리프 캐싱 설정 변경

  • devtools 이용시 템플릿 엔진의 캐싱 기능으로 인해 별도의 설정을 해주지 않으면, 그대로 캐싱 기능을 사용한다. 개발환경에서는 변경사항을 바로 반영해줘야 하기때문에 아래와 같이 캐싱 기능을 끈다.
  • 하지만 운영환경에서는 캐싱기능을 통해 성능 향상을 위해 다시 true로 설정해줘야 한다.
spring:
  devtools:
    livereload:
      enabled: true
    restart:
      enabled: true
  thymeleaf:
    cache: false

0개의 댓글