[개인프로젝트] 가계부 프로젝트 step3.2 : intellij에서 정적 파일 빠르게 reload하기
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로 캐시 없애고 새로고침하면 변경된 것이 적용되는 것을 확인할 수 있다.