본문 바로가기
쿤즈 Dev/Spring Boot

[Spring Boot] 정적소스 수정 후 서버 재시작 없이 적용 방법

by :)Koon 2021. 3. 9.

스프링 부트(Spring Boot) 개발을 공부하시다 보면 느껴지는 불편함이 있습니다. 바로 정적 소스들을 수정해도 브라우저에 바로 반영이 되지 않아서 서버를 항상 재시작해야 하는 점이죠.

 

 

그래서 이번 포스팅에서는 정적 소스(*.html, *. js, *. css)들을 수정하고 서버 재시작 없이 적용하는 방법에 대해서 알아보도록 하겠습니다.


서버 재시작 없이 정적소스 반영 1 : devtools 추가

첫 번째로 해야 할 일은 Maven에 devtools 라이브러리를 추가하는 것입니다. 보통은 개발 세팅을 할 때 미리 라이브러리를 추가해 주지만 추가가 되어 있지 않을 경우에 추가해 주시면 됩니다.

 

먼저 pom.xml파일을 열어서 아래 dependency를 추가해줍니다.

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

dependency는 devtools입니다. 추가해 준 뒤에 메이븐(Maven)을 다시 빌드하도록 합니다.


서버 재시작 없이 정적 소스 반영 2 : properties 파일 수정

두 번째로 해야 할 일은 application.properties 파일에 아래 사항들을 추가하도록 합니다.

spring.devtools.livereload.enabled=true
spring.freemarker.cache=false
spring.thymeleaf.cache=false

추가가 완료되었다면 이제 서버를 재시작해서 설정해준 사항들을 모두 적용시켜 줍니다. 이렇게 적용시키고 난 뒤에 thymeleaf를 사용하더라도 변경된 정적 파일들은 모두 브라우저의 refresh를 통해서 모두 변경되는 것을 확인하실 수 있습니다.


이번 포스팅에서는 스프링 부트를 사용하여 개발하면서 마주하게 되는 약간의 불편한 부분을 줄여주는 방법입니다. 바로 정적 소스의 수정으로 WAS를 재시작할 필요 없이 적용하는 방법입니다. Rest api를 개발하면서는 이러한 불편함이 없지만 최종적으로 화면에 보여주는 페이지를 만들 때에는 불편함이 생기게 되더군요.

 

필요하신 분들에게 도움이 되었으면 합니다. 이상입니다.

댓글