개인프로젝트

[개인프로젝트] 가계부 프로젝트 step3.2 : intellij에서 정적 파일 빠르게 reload하기

ydin 2024. 5. 9. 22:25

1. 계기

화면을 개발하면서 가장 불편했던 것이 사소한 태그 하나를 고치더라도 서버를 재시작해야 한다는 것이었다. 게다가 화면은 수시로 계속 변하기 때문에 정말 번거로운 작업이었다. 그래서 (인텔리제이 + 서버 재시작 없이 + 화면 업로드) 조합으로 구글링을 한 결과 인텔리제이에서 서버를 재시작할 필요없이 화면 변경사항을 반영하는 방법이 있어서 적용해봤다. 

 

2. 적용

2-1. 의존성 추가

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

 

2-2. yml에 설정 추가

현재 thymeleaf를 사용하고 있기에 관련해서 설정을 추가로 해줘야 한다.

spring:
  devtools:
    livereload:
      enabled: true
    restart:
      enabled: true
  thymeleaf:
    cache: false

 

3. Settings 설정 

3-1. Compiler

맥북 기준으로 [cmd + ,] 를 누른뒤 Setting으로 이동해 Build > Compiler로 이동해 Build Project Automatically에 체크를 해준다.

 

3-2. Advanced Settings

구글링 해보면 registry에 가서 compiler.automake.allow.when.app.running를 누르라고 하는데, 2021.2 이후 버전의 인텔리제이라면 이렇게 하지말고 아래처럼 해야한다.

 

Settings > Advanced Settings > 'Allow auto-make to start ...' 에 체크

 

4. Gradle에서 IntelliJ IDEA로 변경

다른 블로그 설명을 따르면, 아래 그림처럼 Edit Configurations 에 들어가서 Running Application Update Policies을 변경하라고 하는데 On 'Update' action도 없고 다른 블로그에서 보이는 Settings 화면과 달랐다. 참고한 블로그에서도 똑같이 겪었고, 다음과 같은 방식으로 해결했다. 

 

Settings > Build, Execution, Deployment > Build Tools > Gradle -> IntelliJ IDEA

 

 

5. 실행

설정이 끝나면 서버를 재시작해야 적용된 것을 확인할 수 있다. 이제 정적 리소스(html, css)를 변경한 뒤 서버 리로드 할 필요 없이 브라우저에서 cmd + shift + r로 캐시 없애고 새로고침하면 변경된 것이 적용되는 것을 확인할 수 있다. 

 

참고

https://zoetechlog.tistory.com/92