Pichu Pokeball
본문 바로가기
IntelliJ

IntelliJ IDEA 코드 실시간 반영(Hot Swap) 설정 및 활용법

by campanula 2025. 2. 14.

개발 중에 코드를 수정할 때마다 애플리케이션을 종료하고 다시 실행하는 것은 매우 번거로운 일입니다. 다행히 IntelliJ IDEA는 실행 중인 애플리케이션에서 코드를 실시간으로 반영할 수 있는 기능을 제공합니다. 이를 활용하면 개발 생산성을 크게 향상시킬 수 있습니다. 이번 글에서는 IntelliJ IDEA에서 코드 실시간 반영(Hot Swap) 기능을 설정하고 활용하는 방법을 자세히 알아보겠습니다.


1. 코드 실시간 반영이란?

코드 실시간 반영(Hot Swap)은 애플리케이션을 재시작하지 않고 코드 변경 사항을 즉시 반영하는 기능입니다.
특히, Spring Boot, JavaEE, Kotlin, React 같은 프레임워크를 사용할 때 매우 유용합니다.

✨ Hot Swap을 사용하면 다음과 같은 장점이 있습니다.

  • 실행 중인 애플리케이션을 다시 시작할 필요 없이 코드 변경 사항이 적용됨
  • 개발 속도가 빨라지고, 실시간 테스트가 가능
  • 프론트엔드 및 백엔드 개발 모두에서 효율적인 핫 리로드 가능

2. IntelliJ IDEA 코드 실시간 반영 설정 방법

(1) "Build project automatically" 설정

  1. IntelliJ IDEA에서 Ctrl + Alt + S (Mac: Cmd + ,)를 눌러 Settings(설정) 창을 엽니다.
  2. "Advanced Settings" 메뉴로 이동합니다.
  3. "Compiler" → "Build project automatically" 옵션을 활성화합니다.

이 옵션을 켜면 코드 변경이 감지될 때 자동으로 빌드가 실행됩니다.


(2) "Allow auto-make to start even if developed application is currently running" 설정

이 옵션을 활성화하면 애플리케이션이 실행 중이더라도 자동 빌드가 실행됩니다.

  1. Ctrl + Shift + A (Mac: Cmd + Shift + A)를 눌러 "Registry..." 창을 엽니다.
  2. compiler.automake.allow.when.app.running 설정을 찾아 활성화합니다.
  3. IntelliJ IDEA를 재시작합니다.

이렇게 하면 실행 중인 애플리케이션에서도 자동 빌드가 적용됩니다.

 

이름 역할 설명
Build project automatically 🔹 자동 빌드 파일을 변경하면 자동으로 프로젝트를 다시 빌드
Allow auto-make to start even if developed application is currently running 🔹 실행 중 자동 빌드 허용 애플리케이션이 실행 중이어도 자동 빌드가 실행됨

(3) Spring Boot 개발 시 Live Reload 활성화

Spring Boot를 사용할 경우, Spring DevTools 라이브러리를 추가하면 코드 변경 사항이 자동으로 반영됩니다.

build.gradle 또는 pom.xml에 다음 라이브러리를 추가합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>
Edit Configurations (Shift + Alt + F10)에서 "Enable JMX agent" 옵션을 활성화합니다.application.properties 파일에 다음 옵션을 추가합니다.

 

spring.devtools.restart.enabled=true
spring.devtools.livereload.enabled=true
 

이제 Spring Boot 애플리케이션을 실행한 상태에서 코드를 변경하면 자동으로 반영됩니다!

 

(4) Tomcat(외부 서버) 사용 시 자동 반영 설정

Spring Boot 내장 서버(Tomcat)뿐만 아니라, 별도의 Tomcat을 사용하는 경우에도 자동 반영이 가능합니다.

🔹 설정 방법:

  1. Run → Edit Configurations에서 On 'Update' action을 **"Update classes and resources"**로 변경
  2. Settings → Advanced Settings → Compiler에서 "Build project automatically" 활성화
  3. Settings → Deployment → Options에서 "Update resources on frame deactivation" 체크

Tomcat 사용 시 컨트롤러 수정 후 반영 테스트

  • Java 코드를 변경한 후 Ctrl + F9 (Mac: Cmd + F9)를 눌러 빌드
  • 변경 사항이 적용되었는지 확인

3. Hot Swap 테스트 방법

(1) 일반적인 Java 애플리케이션에서 테스트

  1. 간단한 Java Main 클래스를 실행합니다.
  2. System.out.println("Hello World!"); 코드를 추가합니다.
  3. Ctrl + Shift + F9 (Mac: Cmd + Shift + F9)를 눌러 클래스만 다시 빌드합니다.
  4. 실행 중인 애플리케이션에서 변경 사항이 즉시 반영되는지 확인합니다.

(2) Spring Boot 애플리케이션에서 테스트

  1. Spring Boot 애플리케이션을 실행합니다.
  2. 컨트롤러 클래스에서 @GetMapping의 반환 값을 변경합니다.
  3. "Hello, IntelliJ!"로 변경한 후, Ctrl + Shift + F9 (Mac: Cmd + Shift + F9)를 눌러 다시 빌드합니다.
  4. 브라우저에서 /test 엔드포인트를 호출하면 변경 사항이 반영된 것을 확인할 수 있습니다.
@RestController
public class TestController {
    @GetMapping("/test")
    public String test() {
        return "Hello, World!";
    }
}

4. 코드 실시간 반영이 안 될 때 해결 방법

  1. "Build project automatically" 옵션이 활성화되었는지 확인
  2. compiler.automake.allow.when.app.running 설정이 켜져 있는지 확인
  3. DevTools가 정상적으로 추가되었는지 확인 (spring-boot-devtools)
  4. Gradle이 "Run on IDE" 모드인지 확인 (Gradle 설정에서 Build and Run Using → IntelliJ IDEA로 변경)
  5. IntelliJ IDEA 캐시를 삭제하고 다시 빌드 (File → Invalidate Caches / Restart)

5. 결론

IntelliJ IDEA의 코드 실시간 반영(Hot Swap) 기능을 활용하면 애플리케이션을 종료하지 않고 코드 변경 사항을 즉시 확인할 수 있습니다.

핵심 요약:

  • "Build project automatically" 옵션을 활성화
  • "Allow auto-make to start even if developed application is running" 설정
  • Spring Boot 개발 시 "spring-boot-devtools" 라이브러리 추가
  • Ctrl + Shift + F9 (Cmd + Shift + F9)로 클래스만 다시 빌드

 

🎯 결론: Java 코드 자동 반영이 가능한가?

설정 옵션컨트롤러 수정 후 자동 반영 가능 여부

"Build project automatically" + "Allow auto-make to start even if developed application is currently running" Java 코드 반영 안 됨
Spring Boot + DevTools 자동 반영 가능 (부분적 리스타트)
Tomcat 사용 시 "Update classes and resources" 활성화 자동 반영 가능
HotSwap (일반 Java 프로젝트) 메소드 내부 코드만 반영 가능, 구조 변경 시 불가

👉 결론: 단순히 "Build project automatically" + "Allow auto-make to start even if developed application is currently running" 옵션만 체크한다고 Java 코드가 자동 반영되지는 않습니다!

Spring Boot 프로젝트라면 spring-boot-devtools를 추가해야 합니다.
Tomcat(외부 서버) 사용 시에는 "Update classes and resources" 설정이 필요합니다.
단순한 코드 변경(Java 내부 로직 수정)만 반영하려면 HotSwap을 사용할 수도 있습니다.

 

이 기능을 잘 활용하면 개발 속도를 향상시키고, 보다 효율적인 개발 환경을 만들 수 있습니다. 🚀

여러분도 IntelliJ IDEA의 실시간 코드 반영 기능을 사용해 보세요! 🎉

 

 

참고글 

https://ynzu-dev.tistory.com/entry/intellij-html-jsp-css-javascript-Live-reload%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%B0%98%EC%98%81-%EC%83%88%EB%A1%9C%EA%B3%A0%EC%B9%A8%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

 

[intellij] html, jsp, css, javascript.. Live reload(실시간 반영, 새로고침)적용하기

Update Policies 정책으로 인해 업데이트가 바로 적용 안됨.. 프로젝트를 수정사항을 확인하기 위해 재시작을 하는게 너무 번거로워 서치해봄.. 아래와 같이 적용하면 재시작하지 않아도 변경 사항

ynzu-dev.tistory.com

 

https://dalichoi.tistory.com/entry/%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4IntelliJ-%EC%BD%94%EB%93%9C-%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%B0%98%EC%98%81%EC%84%9C%EB%B2%84-%EC%9E%90%EB%8F%99-%EC%9E%AC%EC%8B%9C%EC%9E%91

 

인텔리제이(IntelliJ) 코드 실시간 반영(서버 자동 재시작)

환경 IntelliJ Spring Boot Gradle 의존성 추가 dependencies { developmentOnly("org.springframework.boot:spring-boot-devtools") } 인텔리제이 설정 추가 - 2021.2 버전 이전 윈도기준 컨트롤+시프트+A 누른 후 Actions 탭에서 Regis

dalichoi.tistory.com