Spring/DevTools

[Spring Boot] DevTools로 개발 생산성 높이기 1편: Live Reload 완벽 가이드

Dev.Cho 2024. 11. 28. 07:46
반응형

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는 다음 페이지에서 확인할 수 있습니다.

 

반응형