Programming/Spring

[Spring Boot] DevTools는 무슨 역할을 할까? (기능 / 특징)

JeongKyun 2022. 4. 7.
반응형

서론

Spring Boot 에서는 여러 도구를 제공하는데,

그 중 하나인 DevTools에 대해 알아보자.

 


 

 

DevTool란?

이름에서 암시하듯, DevTools는 스프링 개발자들에게 편리한 도구를 제공한다.

 


 

[제공 기능]

  1. 코드가 변경될 때 자동으로 애플리케이션을 다시 시작시킨다.

> DevTools는 변경을 감시하며, 뭔가 변경되었음을 알게 되면 자동으로 애플리케이션을 다시 시작시켜주는 속성이 있다. 변경이 감지되는 경우 DevTools는 우리 프로젝트 코드를 포함하는 클래스 로더만 다시 로드하고 스프링 애플리케이션 컨텍스트를 다시 시작시켜준다. 그러나 다른 클래스 로더와 JVM은 그대로 둔다. 따라서 애플리케이션이 시작하는데 걸리는 시간을 조금이나마 단축해준다.

 

 

  2. 브라우저로 전송되는 리소스 (템플릿, 자바스크립트, 스타일 시트 등)가

      변경될 때 자동으로 브라우저를 새로고침한다.

 

 

  3. 템플릿 캐시를 자동으로 비활성화한다.

> 기본적으로 Thymeleaf와 FreeMarker 같은 템플릿에서는 템플릿의 파싱 결과를 캐시에 저장하고 사용하도록 구성된다. 템플릿이 사용되는 모든 웹 요청마다 매번 다시 파싱 되지 않게 하기 위해서다. 이것은 조금이라도 성능상의 이점을 얻을 수 있어서 실제 운영 시 에는 좋다. 그러나 개발 시점에는 템플릿 캐싱이 오히려 새로고침 하더라도 여전히 변경 전의 캐싱된 템플릿이 사용되어서 결과를 볼 수 없어 불편한데, DevTools를 사용하면 캐싱을 자동으로 비 활성화 시켜준다. 여기서 더불어 LiveReload 서버를 활성화되면서 새로고침 없이 브라우저가 자동으로 새로고침 된다.

 

 

  4. 만일 H2 데이터베이스가 사용 중이라면 자동으로 H2 콘솔을 활성화한다.

 

 


 

[특징]

DevTools는 각종 IDE 플러그인이 아니며, 특정 IDE를 사용해야 하는 것도 아니라는 것을 알아 두어야 한다. 따라서, STS, IntelliJ IDEA 등 모두에서 잘 동작한다. 

 

또한, 개발 시에만 사용되도록 했으므로

실제 운영에서는 스스로 비활성화되는 속성이 있다.

 

댓글

💲 많이 본 글