Spring

[Spring] spring-boot-devtools로 소스코드 수정 후 바로 적용하기

bum0w0 2024. 6. 26. 01:05

오늘은 스프링에서 view 환경설정 중 알게 된 spring-boot-devtools 모듈을 소개하고자 한다.

 

이전에 FastAPI로 간단한 웹 페이지를 구현해 본 적 있는데 FastAPI에서는 uvicorn이라는 ASGI 서버를 사용해 --reload 옵션으로 소스 코드 변경을 감지하고 자동으로 서버를 재시작하는 기능이 있었다. 이것을 핫 리로드라고 하는 것 같다.

 

Spring Boot에서는 핫 리로드 기능을 위해  spring-boot-devtools 라이브러리를 제공하고, 이 라이브러리를 추가하면 html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.

 

Devtools 는 아래 5가지 기능을 제공한다고 한다.

  • Property Defaults
  • Automatic Restart
  • Live Reload
  • Global Settings
  • Remote Applications

쉽게 말하면, 소스 코드 변경 시 어플리케이션을 자동으로 재시작하여 브라우저에 업데이트를 해준다는 의미이다.

 

Devtools 설정 방법

1. Dependency에 Devtools를 추가

(Gradle 사용시)

 

2. Settings -> Advanced Settings 설정

인텔리제이 설정으로 들어가고 고급 설정에서 빨간 박스안의 체크박스를 체크해주면 된다.

 

3. Settings -> Build, Execution, Deployment -> Compiler 설정

인텔리제이 설정으로 들어가고 빌드, 실행, 배포 설정에 가서 컴파일러로 간다. 여기서 빨간 박스안의 프로젝트 자동 빌드를 체크해준다.

 

마지막으로 해당 프로젝트를 재시작 해주면 html 파일 변경과 같은 수정 사항이 웹 브라우저에 바로 반영이 된다.