Live Reload란?
스프링 부트로 스프링 애플리케이션을 개발하면서 코드에 변경 사항이 발생하면, 애플리케이션을 중지한 후 다시 실행해야 변경 사항을 확인할 수 있다. 하지만, 매번 이 과정을 거치는 것은 번거롭다. 이 문제를 해결하기 위해 Spring Boot는 DevTools 모듈을 통해 Live Reload라는 기능을 제공해 이 과정을 자동으로 할 수 있게 한다.
DevTools 의존성 추가하기
이런 기능을 사용하기 위해서는 DevTools 모듈을 추가해야 한다. build.gradle.kts 파일의 dependencies 블록에 다음과 같은 의존성을 설정한다.
dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
...
}
developmentOnly는 개발 시에만 추가되는 의존성으로 이 DevTools 모듈은 개발 편의를 위한 것이기 때문에 의존성 설정 시 developmentOnly를 사용한다.
이 의존성이 추가되면 자동으로 Live Reload 기능이 활성화된다. 이것이 제대로 동작하는지 확인해보자.
Controller 만들기
먼저 Controller을 다음과 같이 만든 후 애플리케이션을 실행해보자.
@Controller
class Controller {
@GetMapping("/hello")
@ResponseBody
fun hello(): String {
return "Hello, Kotlin World!"
}
}
그러면 /hello 경로에 대한 Get 호출 시 "Hello, Kotlin World" 문구가 반환된다.
이제 Live Reload 기능이 제대로 동작하는지 확인하기 위해 위 Controller을 다음과 같이 변경 후 저장해보자.
@Controller
class Controller {
@GetMapping("/hello")
@ResponseBody
fun hello(): String {
return "Hello, Spring Kotlin World!"
}
}
그러면 로그를 보면 "[devtools][ restartedMain]" 이라는 문구가 나오면서 스프링 애플리케이션이 자동으로 재시작된다.
그리고 다시 /hello 경로로 접속해보면 변경된 코드가 바로 반영된 것을 볼 수 있다.
이처럼 Live Reload 기능을 사용하면, 코드에 변경사항이 생기면 스프링 애플리케이션이 자동으로 재시작된다.
전체 코드: GitHub
이 프로젝트가 도움이 되셨다면 저장소에 Star⭐️를 눌러주세요! Stargazers는 다음 페이지에서 확인할 수 있습니다.