[Spring] 수정 사항 발생시 자동 리빌드 Auto Reload

2025. 11. 4. 09:37Dev./Spring

728x90
반응형

API 구현 후 포스트맨에서 통신할 때 수정 사항이 발생하면 서버를 껐다 켜서 컴파일 시켜야했다. 수정사항이 얼마나 많은데 그때마다 서버 껐다 킬 수는 없으니 방법을 알아보다 핫 리로드 설정을 보게 되었다.

왜 서버를 껐다 켜야 수정사항이 반영되는 걸까?

java는 코드를 컴파일러가 기계어로 번역 후 실행하는 컴파일 언어다. 저장 즉시 실행되는 것이 아니라 컴파일 -> 클래스 로딩 -> 실행 순의 순서가 필요하다.  프로그램이 실행될때 CPU가 바로 기계어를 읽을 수 있어서 빠르지만 개발자가 코드 수정시 재컴파일 해야한다는 단점이 있다. 

즉 자바의 특성을 이해하면 알 수 있다.

핫 리로드 

서버를 껐다 켜지 않아도 코드 수정이 즉시 반영되게 하는 개발 환경 설정

장점

  • 코드 저장 순간 인텔리제이가 자동 빌드, 변경된 부분만 스프링이 재로드
  • 서버는 켜진 채로 수정사항 반영
  • 포스트맨 요청시 바로바로 결과 반영

Spring Boot Devtools 공식문서 첨부

 

Developer Tools :: Spring Boot

Applications that use spring-boot-devtools automatically restart whenever files on the classpath change. This can be a useful feature when working in an IDE, as it gives a very fast feedback loop for code changes. By default, any entry on the classpath tha

docs.spring.io

설정 방법

1.build.gradle에 spring-boot-devtools 의존성 추가

dependencies {
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
}

⭐️ 의존성 추가는 ctrl+s로 반영안됨. 옆에 생성되는 코끼리 아이콘을 눌러야 Gradle이 의존성 목록을 읽고 프로젝트에 반영

2. 인텔리 제이 설정에서 자동 빌드 옵션 켜기

내 현재버전 인텔리제이에서는 컴파일러 설정해서 해줄 것이 없었다.

설정 -> 고급 설정 -> 컴파일러 검색 -> auto-make 옵션 활성화

이후 포스트맨에서 요청을 보내면 서버를 껐다 키지 않아도 다음과 같이 존재하지 않는 글입니다 에서 마구잡이로 입력한 메세지가 바로 반영이 된다.

 

728x90
반응형

'Dev. > Spring' 카테고리의 다른 글

[Spring] JPA 영속성 컨텍스트  (0) 2025.11.10
[Spring] JPA N+1 문제  (0) 2025.11.07
[Spring] JPA 관계 설정(1:N/N:1)  (0) 2025.11.05
[내배캠] 한달 회고  (0) 2025.10.31