부트 개념과 활용-14.Spring-Boot-Devtools


Spring-Boot-Devtools

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

해당 의존성을 추가해주면 (Spring-Boot-Devtools 추가)

  • 캐시 설정을 개발 환경에 맞게 변경.

    타임리프, 프리마커, 그루비 등 캐시를 다 끄고, 세션 퍼시스턴스 true로 변경하고, h2 콘솔을 켜고 등…
    대부분 캐시 끄는 것..
    캐시가 적용되어 있으면, 바꾼 것들이 바로 반영이 안되니까 캐시에 관련된 설정을 개발 환경에 맞게 꺼 준다.

  • 클래스패스에 있는 파일이 변경 될 때마다 자동으로 재시작.(리스타트 기능)
    • 직접 껐다 켜는거 (cold starts)보다 빠른다. 왜?

      스프링 부트는 클래스로더를 2개 사용. 하나는 베이스 클래스 로더.(우리가 잘 바꾸지 않는 의존성을 읽어들이는) 하나는 리스타터 클래스 로더 (애플리케이션을 읽어들이는)

    • 릴로딩 보다는 느리다. (JRebel 같은건 아님)
    • 리스타트 하고 싶지 않은 리소스는? spring.devtools.restart.exclude
    • 리스타트 기능 끄려면? spring.devtools.restart.enabled = false
  • 라이브 릴로드? 리스타트 했을 때 브라우저 자동 리프레시 하는 기능
    • 브라우저 플러그인 설치해야 함.
    • 라이브 릴로드 서버 끄려면? spring.devtools.liveload.enabled = false

      하지만 실패 확룔이 있어서 (제대로 빌드 안됨. 그 시간 고려하면 안 쓰는게 더 빠를수도.. 5번중 3번 빌드 실패하는것 확인..)

  • 글로벌 설정
    • ~/.spring-boot-devtools.properties (1순위 외부설정 파일의 위치 - 이 플러그인이 존재하면(Devtools))
  • 리모트 애플리케이션
    • 운영환경에서 권장하지 않음. 다른 컴퓨터에 원격으로 돌리거나, 파일을 반영하거나 등 가능하나.. 설정 복잡 및 개발 환경에서 사용할 필요가..





© 2019. by jaeuk