LiveReload
"브라우저 자동 새로고침"
- HTML, CSS, JS와 같은 정적 리소스를 저장하면 브라우저를 자동으로 새로고침해 주는 기능
- 브러우저 확장 프로그램이나 스크립트가 파일 변경 이벤트를 받아 페이지를 리로드
- 서버를 다시 기동하지 않아도 화면 변경 바로 확인 가능
- Spring Boot DevTools의 경우 내장 LiveReload 서버가 리소스 변경 감지해 브라우저 확장 프로그램에 알리는 방식으로 동작
Hot Reload와 비교
- Hot Reload : 소스 코드 수정하고 저장할 때, 전체 애플리케이션 종료/재시작 하지 않고 변경된 부분만 런타임에 교체
- LiveReload는 보통 파일이 바뀌면 브라우저를 통째로 새로고침하지만, Hot Reload는 변경된 모듈만 교체해서 새로고침
- 애플리케이션 상태 유지할 수 있다는 장점
- 활용 : React/Vue의 HMR, React Fast Refresh, Flutter, Python 웹 프레임워크
Hot Deploy
"서버 재기동 없이 코드 반영"
- 애플리케이션 컨테이너가 서버 프로세스를 중단하지 않고 새로운 코드/배포물을 다시 올리는 기능
- WAS가 변경된 애플리케이션 자동 배포하여 서비스 중단 없이 새로운 버전 적용 (IDE 기능이 아니라 컨테이너 기능)
Hot Swap 과의 비교
- Hot Swap : JVM 단위에서 변경된 클래스 바이트코드를 교체하는 것 (디버그 모드에서 메서드 내부 수정)
- Hot Reload : 코드 변경을 감지해 애플리케이션 자동 재시작하거나 모듈만 교체해 상태를 유지한 채 반영하는 기능 (프론트 HMR, Spring DevTools)
Live Reload vs. Hot Deploy

개발에서의 적용
- 일반적인 Web 개발 환경에서는 LiveReload를 먼저 적용하고, 필요하면 Hot Deploy 적용을 고려해야한다
- Local 개발 생산성이 먼저라면 : LiveReload / Hot Reload / DevTools 자동 재시작이 중요
- 배포 전략 나중 : 실제 서버에서 다운타임 줄인ㄴ 것이 필요해질 때 Hot Deploy 설계