본문 바로가기
학습/Spring

[spring] 스프링부트의 Spring-Boot-Devtools

by KKambi 2020. 4. 18.

스프링부트가 제공하는 Optional Tool

  1. org.springframework.boot:spring-boot-devtools 의존성 추가
  2. 추가 시 기본 프로퍼티 변경
    • 개발 환경의 편리함을 위한 일부 캐시 false
    • h2 on
    • session-persistent on
    • restart on
  3. 리스타트 기능?
    • 코드 변경 시 자동 재시작
    • 스프링부트가 사용하는 2개 클래스로더 중, 리스타트 클래스로더 이용
      1. Base Class Loader (의존성을 읽어들이는 클래스로더)
      2. Restart Class Loader (어플리케이션을 읽어들이는 클래스로더)
  4. 라이브 리로드 기능?
    • 코드 변경 시 브라우저를 새로고침
    • 브라우저 플러그인 필요
  5. 리모트 어플리케이션 기능?
    • 원격에 어플리케이션 코드를 생성하고, 로컬에서 실행
    • Producution을 위한 것이 아님!

Spring-Boot-Devtools 프로퍼티 변경하기

  1. 글로벌 설정되는 프로퍼티(1순위) ~/.spring-boot-devtools.properties
  2. 리스타트 기능 끄기 spring.devtools.restart.enabled = false
  3. 리스타트에서 특정 리소스 제외하기 spring.devtools.restart.exclude
  4. 라이브 리로드 끄기 spring.devtools.liveload.enabled = false

백기선님의 의견

  1. 잔오류가 많다 = Reliability 하락
  2. 리모트 어플리케이션 기능은 굳이 개발을 리모트로 해야할까? 그 상황을 만들지 않는게 더 좋음

백기선님의 추천

  1. 리스타트 / 라이브 리로드 / 리모트 기능은 별로!
  2. devtools의 기본 프로퍼티 설정만 복사해서 테스트용 프로퍼티에 붙여넣고 쓸 듯
    • 캐시 설정 off
    • h2 on
    • 등등 유용햔 개발설정

댓글