본문 바로가기
  • 개발하는 곰돌이
Development/etc.

[IntelliJ] 스프링부트 프로젝트의 클래스 또는 리소스 수정 후 자동으로 재시작하기

by 개발하는 곰돌이 2023. 11. 2.

 

이클립스에서 인텔리제이로 IDE를 갈아탄 이후 가장 불편했던 점이 로컬에서 인텔리제이를 통해 프로젝트가 실행 중인 상태에서 클래스나 리소스를 수정했을 때마다 프로젝트를 수동으로 재시작해야 했던 점이다.

 

그러던 중에 인텔리제이에서도 스프링부트 프로젝트의 클래스나 리소스를 수정했을 때 자동으로 프로젝트를 재시작해주는 기능이 있다는 것을 알게 되어 정리하려고 한다.

 

본 글은 IntelliJ IDEA 2023.2.4 Ultimate Edition + Gradle 기준으로 작성되었습니다.

의존성 추가

build.gradle에 아래 의존성을 추가한다.

developmentOnly 'org.springframework.boot:spring-boot-devtools'

Run/Debug Configurations 설정 변경

상단 메뉴에서 RunEdit Configurations...로 들어간다.

Build and run 우측에 있는 Modify options를 눌러서 드롭다운 메뉴를 연다.

Spring Boot 탭에서 On frame deactivationUpdate classes and resources를 선택하고 OK를 눌러서 실행 설정을 저장한다.

여기까지 설정해놨다면 프로젝트가 실행중인 상태에서 클래스나 리소스를 추가 / 삭제 / 수정하고 다른 창(웹 브라우저 등)으로 포커싱을 옮겼을 때 자동으로 프로젝트가 재실행되는 것을 볼 수 있다.

재시작하기 전에 몇 가지의 변화가 있었는지도 콘솔에 출력된다.

새로 생성하는 모든 스프링부트 프로젝트에 적용하기

매번 스프링부트 프로젝트를 생성할 때마다 동일한 설정을 하는게 귀찮을 수 있다. 이럴 땐 약간의 설정을 건드려서 새로 생성하는 모든 스프링부트 프로젝트에 적용할 수도 있다.

 

상단 메뉴의 FileNew Projects Setup → Run Configuration Templates...로 들어간다.

좌측 리스트를 아래로 내려서 Spring Boot를 찾은 후 위 과정과 동일하게 Modify options → On frame deactivation → Update classes and resources를 선택하여 실행 옵션에 추가해준다.

이 경우도 동일하게 스프링 이니셜라이저로 스프링부트 프로젝트를 생성할 때 의존성에 Spring Boot DevTools를 추가하거나, 프로젝트를 생성할 때 추가하지 않았다면 별도로 build.gradle에 추가해줘야 정상적으로 작동한다.

댓글