0%

Spring Boot DevTools

Devtools?

SpringBoot 1.3에서 추가된 프로젝트이며, SpringBoot 어플리케이션 개발 작업을 개선하기 위한 프로젝트입니다.
Devtools의 특징은 다음과 같습니다.

특징의 경우 오역이 많을 수 있으므로 하단의 Devtools의 공식문서를 참고하여 이해하시길 추천드립니다.


Property Defaults

  • SpringBoot 1.2와 함께 Thymeleaf를 사용한 경우 spring.thymeleaf.cache속성에 익숙할 것입니다.
  • 이 속성으로 캐시를 비활성화 하여 서버를 재시작하지 않고 페이지 갱신을 하는데 사용합니다.
  • 이 특성을 지원 받으면 편리하지만, 개발 중에 설정하는 것은 힘듭니다.
  • 그래서 Devtools 모듈을 사용할 경우 Thymeleaf, Freemarker, Groovy Templates, Velocity and Mustache에 대한 개발 캐싱이 자동으로 비 활성화 됩니다.

Automatic Restart

  • 예전에는 JRebel이나 SpringLoaded와 같은 것을 사용해 Java 어플리케이션을 재시작하는데 사용하였습니다.
  • 위에서 언급한 툴은 대단하지만, 그에 따른 추가 구성이나 IDE에서 플러그인을 설치해야 하는 경우도 있습니다.
  • Spring Boot 1.3에서는 인스턴트 리로드(Instant reload) 보다 약간 느린 속도로 작업을 수행하지만, 어플리케이션을 다시 시작하는 방법으로 동작합니다. -> 주의 오역 많음..
  • 즉 소스 변경이 일어나는 SpringBoot 서버가 새로 재시작되며 반영하며, Classpath 파일 변경 사항이 감지된 경우 자동으로 어플리케이션을 재시작 합니다.
  • **MSA(Micro Service Architecture)**에 적합.

LiveReload

  • 캐시 속성자동 재시작 기능을 사용하는 경우 변경사항이 있을 때마다 브러우저에서 새로 고침을 수동으로 클릭하여 확인해야 합니다.
  • SpringBoot 1.3에서는 LiveReload 서버가 내재되어서 상황이 변경될 때마다 브라우저 새로 고침을 자동으로 트리거하도록 하는 것을 지원.
  • Chrome, Firefox, Safari에서 해당 플러그인을 설치하여 사용할 수 있습니다.

Remote Debug Tunneling, Remote Update and Restart

  • 위 특성은 공식 문서를 참고해주세요.

정리

더 자세한 사항은 Spring.io에서 확인 가능합니다.
아래는 SpringBoot Devtools에 대한 예제 영상입니다.