처음 Spring Boot 프로젝트를 시작하고 개발을 하다보면 수정사항이 있을 때마다 재시작을 해야지 변경사항이 반영된다. 조금씩 바꿀 때마다 다시 시작한다는 것은 불편하고 시간도 낭비되어서 Hot Reload 설정을 찾아보았다. 그런데 대부분 Spring Boot + Java 가 대부분이고, IntelliJ 버전도 이전을 기준으로 한 설명이 많아 최근 버전을 기준으로 정리해보았다.
현재 스택 : Kotlin + Spring Boot + Gradle + IntelliJ 2022.2
[ Hot Reload 설정 방법 ]
1. Spring Boot Dev Tool 을 프로젝트 Dependency에 추가하기
코틀린에서는 프로젝트 루트에 build.gralde.kts 가 있다. 이 중에서 dependencies가 있는데 다음과 같이 spring-boot-debtools 를 추가해야 한다.
dependencies {
implementation("org.springframework.boot:spring-boot-devtools")
... other stuff
}
2. Preference > Build, Execution, Deployment > Compiler 에서 Build project automatically 체크하기
먼저 Preference에 들어간다. 윈도우는 정확하지 않지만 맥에서는 커맨트와 "," 를 같이 누르면 켜진다. 그러면 Build, Execution, Deployment 에서 다시 Compiler를 누르면 다음과 같은 창이 나온다.
필자는 이미 체크를 하였는데 여러 옵션 중에서 "Build project automatically" 를 체크하면 된다.
3. Preference > Advanced Settings 에서 Allow auto-make to start even if developed application 체크하기
아까처럼 Preference에서 맨 아래에 있는 Advanced Settings 를 들어가면 다음과 같은 창이 나온다.
여기서도 필자는 이미 체크가 되어있는데 Allow auto-make to start even if developed application is currently running 을 체크하면 된다.
+) 다른 자료들을 찾아보면 Registry에 들어가서 compiler.automake.allow.when.app.running 을 체크하라고 할 것이다. 필자도 처음에는 해당 설정을 찾아보았는데 registry에 들어가서 보아도 해당 옵션이 없다. 그래서 더 찾아보니 IntelliJ 2021.2 버전부터 위의 설정이 Advanced Settings 으로 옮겨졌다고 한다.
4. Project Run/Debug Configurations 수정하기
IntelliJ 위쪽 줄에 실행버튼 왼쪽 버튼을 클릭 후에 Edit Configurations... 를 클릭하면 다음과 같은 창이 나온다.
여기서 파란색 Modify options를 클릭하면 다시 아래와 같은 탭이 추가로 나온다.
해당 탭에서 지금은 Do nothing 으로 설정되어 있는 두 가지를 수정해야 한다. 바로 "On 'Update' action" 과 "On frame deactivation" 이다. 해당 설정을 클릭하면 다시 여러 선택지가 나오는데 두 가지 모두 Update classes and resources 로 변경한다.
두 가지 모두 정상적으로 추가가 되었다면 첫 페이지 아래에 설정한 값들이 나오게 된다.
이제 모든 설정을 끝냈다. 만약 프로젝트를 실행중이라면 종료하고 "디버그" 모드로 실행을 하면 된다. 상단의 초록색 벌레 버튼으로 실행하면 코드를 수정할 때마다 자동으로 재 빌드를 하여서 즉각 반응한다.
[ Reference ]
'Back-End > Spring Boot' 카테고리의 다른 글
[Spring Boot] TypeNotPresentException 에러 (0) | 2022.11.08 |
---|---|
[Spring Boot] ERROR 31389 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] 에러 해결하기 (0) | 2022.09.13 |
댓글