It's Ward

[Spring] 스프링 Intellij - 실시간 반영하기(코드 자동 재시작) 본문

Java/Spring

[Spring] 스프링 Intellij - 실시간 반영하기(코드 자동 재시작)

I'm ward 2022. 5. 29. 15:38

Spring Boot로 웹 페이지를 만들다보면, 굉장히 불편한 상황이 연출된다.

간단하게 테스트를 하고싶은데 코드를 살짝 변경할 때마다, 정지 - 시작 - 정지 - 시작을 계속 반복해야 하기때문이다.

여러가지 방법이 있지만, 필자는 구글링을 통해 단편적으로 있는 웬만한 방법들을 다 해봐도 실패했었는데,

결국 거의 모든 사항을 적용하고 나서 성공 할 수 있었다.

 

** intelliJ 버전 2022.05 기준 , Java JDK 11 , gradle
** Spring Initializr 기준 2.7.0, Spring Web, Spring boot DevTools, Thymelaf

 

순서대로 진행하면서, 적용 되는 부분까지 시도를 하면되겠습니다.

1. Google Live Reload 플러그인 설치 

필자는 크롬을 사용하여 진행하였는데, 맨 마지막에 해당 플러그 인을 설치하고 나서 성공하여 허탈한 기분이 들었다... 혹시라도 설치되어있지 않다면, 먼저 설치하고 진행하도록 하자.

설치가 모두 되었으면 크롬 주소창 오른쪽의 빨간색 퍼즐버튼을 눌러, 고정시키고 필요할 때 마다 키도록 하자.

https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=ko 

 

LiveReload

Provides Chrome browser integration for the official LiveReload apps (Mac & Windows) and third-parties like guard-livereload and…

chrome.google.com

 

2.build.gradle 설정 확인 

project에 build.gradle - dependencies에 해당 설정이 되어있지않다면 추가한다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
}

 

3. Preference 설정

File - Settings -  Build,Excution,Deployment  ->  Compiler - Build project automatically 체크

File - Settings - Advanced Settings - Allow auto-make to start evem if developed application is currently running 체크

 

4. 브라우저 캐시 삭제

브라우저 캐시가 잡고 있어, 설정이 되어있어도 안되는 경우가 있다. 크롬 설정에서 인터넷 기록 삭제를 진행한다.

 

5. Properties 캐쉬 사용안함

Spring boot를 intelliJ의 gradle 설정을 진행하면,  yml파일이 아닌 apllication.properties에서 설정을 진행하여야 한다.

spring.devtools.livereload.enabled=true
spring.devtools.remote.restart.enabled=false
spring.freemarker.cache = false
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/

다음과 같이 properties에 추가하자.

그래도 안된다면.. 잘 모르겠다. maven 또는 학생용 ultimate 로 진행하는 부분은 굉장히 자료가 많던데 어쩌면 일반 커뮤니티를 사용해서 그럴지도모르겠다. 

 

Comments