본문 바로가기

Java/Spring Boot

[Spring Boot] Spring-Boot-Devtools

Spring Boot가 제공하는 optional한 tool로 아래 의존성 추가해야 함

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

 

  • 캐시 설정을 개발 환경에 맞게 변경
  • 클래스패스에 있는 파일이 변경될 때마다 어플리케이션을 자동으로 재시작
    - 직접 껐다 켜는 것(cold starts)보다 빠름
    - 리로딩보다는 느림(JRebel 같은 건 아님)
    - 리스타트하고 싶지 않은 리소스 : spring.devtools.restart.exclude
    - 리스타트 기능 끄기 : spring.devtools.restart.enabled=false
  • 라이브 리로드
    - 리스타트(서버 재시작) 했을 때 브라우저 자동 리프레시하는 기능
    - 브라우저 플러그인 설치해야 함
    - 라이브 리로드 서버 끄기 : spring.devtools.liveload.enabled=false
  • 글로벌설정
    - ~/.spring-boot-devtools.properties
    - application.properties보다 우선순위 높음
    - spring-boot-devtools 의존성이 있는 경우 1순위 외부설정
  • 리모트 어플리케이션
    - 원격으로 어플리케이션을 띄워놓고 로컬에서 실행하는 것
    - 절대 프로덕션용으로 사용하지 말 것

 

 

 

 

Spring Boot는 클래스 로더를 2개 사용

- Base Classloader : 라이브러리, 의존성들을 읽어들임

- Restart Classloader : 어플리케이션을 읽어들임

 

 

 

 

 

 

 

Spring-Boot-Devtools가 제공하는 기능들이 완벽하지도 않을 뿐더러, 큰 장점이 없기 때문에
꼭 필요한 경우가 아니라면 캐시설정 바꾸는 부분만 properties 파일에 추가해서 사용하는 것이 더 나아보임

 

 

 

 

 

 

 

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

스프링 부트 개념과 활용 - 인프런 | 강의

스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com

https://velog.io/@dev_zzame/Spring-Boot-Devtools-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0for-%ED%8E%B8%ED%95%9C-%EA%B0%9C%EB%B0%9C

 

Spring Boot Devtools 설정하기(for 편한 개발)

Spring Boot Devtools는 애플리케이션 개발 시 유용한 기능들을 제공하는 모듈이다. 해당 모듈을 이용하면 개발 생산성을 향상시키는 데 도움을 줄 수 있다. Spring Boot Devtools에서 제공하는 대표적인 기

velog.io