본문 바로가기
TOOLS/IntelliJ

[IntelliJ] 서버 재시작 없이 정적 리소스(HTML, CSS 등) 실시간 반영하기

by 무사뎀벨레 2022. 8. 9.

 

 

작업을 하다 보면 소스 수정, 추가, 삭제 변경사항이 생깁니다.

그럴 때 보통은 서버를 재시작하고 변경 사항을 확인하는데,
여러 번 이러한 상황이 생긴다면 번거로울 수
있습니다.


정적 자원들에 한해서만 해당이 되더라도,
개발하는 데에 있어 생산성이나 효율성이 상당히 좋아집니다.


아래와 같은 방법을 통해
서버 재시작 없이 정적 리소스 변경사항을 실시간으로 확인할 수 있습니다.

 

 

 

 

설정 환경


IntelliJ + Spring Boot + Maven 혹은 Gradle

 

 

 

 

 

1. Dependency 추가


Maven

pom.xml에 아래 코드를 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

 

Gradle

dependencies {
    developmentOnly("org.springframework.boot:spring-boot-devtools")
}

 

 

 

 

 

2. application.yml 추가


application.ymldevtools에 아래 내용을 추가합니다.

현재 저는 타임리프를 사용중이라 thymeleaf.cache -> false 라고 추가하였고, 다른 기술을 사용한다면 해당 기술의 cache를 false로 입력하시면 됩니다.

spring:
  ...생략...
  devtools:
    livereload:
      enabled: true
    restart:
      enabled: true
  thymeleaf:
    cache: false

 

 

 

 

 

3. intelliJ 설정


3-1. 상단 메뉴바의 File -> Settings.. -> Buils, Execution, Deployment -> Compiler 에서 Build project automatically 체크박스를 선택합니다.

 

3-2. shift를 두번 연속 클릭하여(혹은 Ctrl + Alt + Shift + /) 나오는 창에 registry를 입력한 뒤 Registry... 를 선택합니다.

 

3-3. Registry 창에서 compiler.automake.allow.when.app.running 항목의 Value 부분의 체크박스를 체크합니다.


2021.2 버전부터는
Registry가 아닌 Advanced Settings에서
compiler.automake.allow.when.app.running을 체크

 

 

 

 

 

4. Run/Debug Configurations 설정


상단 메뉴바에서 Run -> Edit Configurations... 을 선택한 뒤

 

On update actionOn frame deactivationUpdate classes and resources로 변경합니다.

 

 

 

5. 이 후 서버 재시작한 뒤 위 설정 사항들을 적용시켜줍니다.

반응형

댓글