IntelliJ SpringBoot HotSwap 설정으로 빠른 재시작하기

2

TL;DR

  1. Gradle에 developmentOnly("org.springframework.boot:spring-boot-devtools") 를 추가합니다.
  2. 실행 → 구성 편집 / 옵션 수정 → 'Update' 작업 시 → "클래스를 핫스왑하고 실패할 경우 트리거 파일을 업데이트합니다" 를 클릭합니다.
  3. 저장 후 디버그 모드 로 Spring Boot Server를 재실행해줍니다.
  4. 파일 작업 후 빌드(Ctrl + F9) 실행시 위 스샷과 같은 팝업 표시 → "다시 로드" 클릭시 작업내용이 서버에 바로 반영됩니다

출처

IntelliJ 공식 문서

본문

스프링 부트를 공부하던 중 매번 파일을 수정하고 서버를 켜는 것이 너무 귀찮아져서... Vue나 Nuxt, Live Server 같은 Hot Reload 기능이 없을까? 하고 찾아보던 찰나에 스프링부트에서도 "Hot Swap" 이라는 기능을 제공한다는 것을 알게 되었습니다.

다만 현재 구글링해서 나오는 글들은 다 오래전에 작성된 글이, 또 과거에는 필요했을지 모르지만 지금은 필요없는 세팅들도 포함되어있어 작성일 기준 버전으로 가장 빠른 세팅방법을 공유하고자 합니다.

적용 환경

Windows 10
Java 11
Spring Boot 2.7.11 (Gradle)
IntelliJ IDEA Ultimate 2022.1.4

설정 방법

  1. build.gradle에 dependencies 항목에 아래 의존성을 추가합니다.
dependencies {
    ...
    implementation 'org.springframework.boot:spring-boot-devtools:2.6.3'
    ...
}

인텔리제이에서 최신버전으로 업데이트 가능하다고 경고를 표시하는데, 최신버전(3.0.4)로 업데이트시 Java17 이상부터 사용 가능하다면서 빌드에러가 납니다.

  1. 실행 → 구성 편집
  2. 빌드 및 실행에서 "옵션 수정"을 선택합니다.
  3. Spring Boot → 'Update 적용 시' → 클래스를 핫스왑하고 실패할 경우 트리거 파일을 업데이트합니다. 를 선택합니다.

설정 후 테스트

위 단계를 따랐다면 기본적인 세팅은 끝났습니다.

이제 컨트롤러 등 서버 내부 파일 수정 후 빌드(Ctrl+F9)시 아래와 같은 팝업이 뜹니다.

"다시 로드" 를 클릭하면 수정한 내용이 바로 반영됩니다.

profile
복잡한 세상 편하게 살자

0개의 댓글