스프링으로 개발을 할 때, 프로그램을 수정하면 서버 빌드도 다시 해야 하는 것이 불편하여 Spring Boot Devtools를 이용해 보았다.
Spring Boot Devtools를 설치하면 서버를 재시작하지 않아도 클래스를 변경할 때 서버가 자동으로 재가동된다.
Spring Boot Devtools를 사용하려면 Spring Boot Devtools를 그래들(Gradle)로 설치해야 한다.
Gradle은 Java 생태계에서 빌드와 관리를 담당하는 핵심 도구로, React 생태계에서 사용하는 Vite 또는 Webpack과 유사한 역할을 한다. Gradle이 React의 Vite나 Webpack과 정확히 동일하지는 않지만, "개발을 돕는 빌드 및 구성 도구"라는 공통점을 가지고 있다.
다만, Gradle은 Java 생태계에서 코드 컴파일부터 테스트, 배포 패키징까지 전체 프로세스를 아우르는 반면, React 생태계의 빌드 도구는 주로 번들링 및 개발 서버 제공에 초점을 맞춘다는 차이점이 존재한다.
- Gradle의 역할
- Java 애플리케이션을 컴파일하고 의존성을 관리하며 패키징하는 전체 빌드 프로세스를 담당.
- Spring Boot와 같은 Java 프레임워크에서 Gradle은 필수적인 역할을 수행.
- Vite/Webpack의 역할
- React 애플리케이션의 자바스크립트 모듈을 번들링하고 개발 서버를 제공하며, 의존성을 관리.
- JavaScript 프로젝트에서 빌드 및 번들링의 핵심 도구로 사용.
Vite를 다룰 때 vite.config.js를 사용하는 것 처럼, 그래들은 buld.gradle를 사용한다. build.gradle 파일에는 프로젝트를 위해 필요한 플러그인과 라이브러리 등이 기술되어 있다.
여기에 developmentOnly의 spring-boot-devtools를 추가해주면 된다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
}
* developmentOnly: 해당 라이브러리는 개발 환경에만 적용된다는 의미로, 운영 환경에 배포되는 jar, war 파일에는 이 라이브러리가 포함되지 않는다.
적용법
인텔리제이에서 그래들을 다시 시작하려면 다음과 같이 한다.
[View] -> [Gradle] 을 클릭하면 오른쪽에 그래들 관리 툴이 나타난다.
내가 실행하고자 하는 프로젝트를 우클릭하고, [Refresh Gradle Dependencies] 를 클릭한다.
[File] -> [setting] 에서 Build project automatically를 체크한다.
[Advanced Setting] 의 [Compiler]의 Allow auto-make to strat even if developed application is currently running 을 체크한다.
테스트 삼아, GetMapping으로 메인 페이지에 보내는 String 값을 변경하고 저장해 보았다.
'Java > SpringBoot' 카테고리의 다른 글
[SpringBoot] Maria DB 로컬 호스팅 및 JDBC, JPA, lombok // CamelCase 유지하기 (1) | 2025.01.05 |
---|---|
[SpringBoot] SpringBoot 프로젝트 구조 (0) | 2024.12.30 |