본문 바로가기
IT_Developers/JAVA

Spring Boot DevTools 란? / 제공하는 기능

by 고코더 2021. 12. 7.

안녕하세요.

고코더 입니다.

 

 

스프링부트 프로젝트를 시작할 때 가장 많이 사용하는 스타트 프레임워크를 하나 뽑으라 하면, "Spring Boot DevTools"가 아닐까 생각합니다. Spring boot 프로젝트를 개발하기 위한 편의를 위한 제공하는 모듈입니다. 말 그대로 편의를 제공하므로, 개발자를 위한 필요한 기능들을 제공합니다. 대표적인  기능을 살펴봅니다. 

 

Property Defaults

Spring Boot에서 지원하는 라이브러리를 캐시를 사용하여 성능을 향상합니다. 대표적인 예시는 바로 템플릿 엔진입니다. 이 파일이 반복적으로 구문 분석하지 않도록 템플릿을 컴파일하여 캐시 합니다. Spring MVC는 정적 리소스를 제공할 때 응답에 HTTP 캐싱 헤더를 추가할 수 있습니다.

캐싱은 개발 중에는 변경된 파일을 바로 확인할 수 없어 역효과를 낼 수 있었기 때문에 기본적으로 캐싱 옵션을 비활성화해놓았습니다. Application cache 설정값을 false로 변경을 해야 이 기능을 맛볼 수 있습니다. 

 

 

Automatic Restart

이 기능을 사용하면 저장할 때마다 프로젝트를 다시 시작합니다. 즉각적으로 서버가 재시작하므로 빠르게 디버깅이 가능합니다. 이 방법은 코드 변경에 대한 매우 빠른 피드백 확인할 수 있습니다. 그리고 특정 디렉터리만을 트리거로 설정하여서 재시작할 수 있습니다. 기존 IDE에서 제공하는 자동 재시작 기능과 유사합니다. 그리고 LiveReload라는 크롬 확장 프로그램과 함께 하면 좀 더 빠르게 디버깅이 가능합니다. 

 

 

Global Settings

spring-boot-devtools.properties
spring-boot-devtools.yaml
spring-boot-devtools.yml

 

 다음 파일 중 하나를 $HOME/.config/spring-boot디렉토리 에 추가하여 전역 devtools 설정을 구성할 수 있습니다.

 

 

Remote Applications

Spring Boot DevTools을 사용하면 원격으로 개발이 가능합니다. 즉 로컬 개발에만 국한되지 않습니다. 응용 프로그램을 원격으로 실행할 때 여러 기능을 사용할 수도 있습니다. 하지만 원격 지원은 보안 위험이 될 수 있으므로 신뢰 가능한 네트워크 혹은 SSL에서만 사용하도록 선택해야 합니다. 좋은 옵션이긴 하지만 여러 문제의 소지가 있어서 실무에서는 선호되지 않는 방식입니다. 이 방식보다는 사무실 컴퓨터를 원격으로 조정해서 개발하는걸 더욱 추천합니다.

 

 

 

 

* 참조 문헌

https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.devtools

 

댓글