4. 고급 구성 속성 활용하기
- 맞춤 설정: 맞춤형 구성 속성을 만드는 방법을 배웁니다.
- 실용적인 팁: 타입 안전을 위한
@ConfigurationProperties
사용 방법을 알아봅니다. - 샘플 소스: Spring Boot 구성 속성
.Spring Boot DevTools 설정
DevTools 종속성 추가
먼저 프로젝트에 DevTools 종속성을 추가합니다. Maven을 사용하는 경우 pom.xml 파일을 다음과 같이 업데이트하세요.
1
2
3
4
5
6
7
8
9
|
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!– … other dependencies … –>
</dependencies>
|
cs |
Gradle의 경우 build.gradle에 다음을 추가하세요.
1
2
3
4
|
dependencies {
runtimeOnly ‘org.springframework.boot:spring-boot-devtools’
// … other dependencies …
}
|
cs |
. 자동 재시작 활성화
Spring Boot DevTools는 자동으로 클래스 경로의 변경 사항을 감시하고 애플리케이션을 다시 시작합니다. 이 기능은 DevTools를 추가하면 기본적으로 활성화됩니다.
. LiveReload 통합
DevTools에는 템플릿이나 정적 리소스를 변경할 때 브라우저를 자동으로 새로 고치는 데 사용할 수 있는 LiveReload 서버가 포함되어 있습니다. 이를 활용하려면 LiveReload 브라우저 확장을 설치해야 합니다.
. 템플릿 캐시 비활성화
서버를 다시 시작하지 않고도 변경 사항이 반영되도록 하려면 개발 시 템플릿 캐싱을 비활성화하세요. Thymeleaf의 경우
application.properties에서 이 작업을 수행할 수 있습니다.
1
|
spring.thymeleaf.cache=false
|
cs |
. 애플리케이션에서의 샘플 사용법
컨트롤러가 포함된 간단한 Spring Boot 애플리케이션이 있다고 가정해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.ui.Model;
@Controller
public class MyController {
@GetMapping(“/”)
public String index(Model model) {
model.addAttribute(“message”, “Hello Spring Boot DevTools!”);
return “index”;
}
}
|
cs |
DevTools가 통합되어 있으면 인덱스 템플릿이나 MyController 클래스를 변경하면 자동으로 애플리케이션이 다시 시작되거나 브라우저가 새로 고쳐집니다(LiveReload가 활성화되고 통합된 경우).
. DevTools 기능 테스트
애플리케이션 실행: 평소처럼 Spring Boot 애플리케이션을 시작합니다.
변경: MyController에서 메시지 속성을 수정하거나 인덱스 템플릿을 업데이트합니다.
자동 다시 시작 관찰: 애플리케이션이 자동으로 다시 시작되어 변경 사항이 즉시 반영됩니다.
브라우저 자동 새로 고침: LiveReload가 활성화되면 브라우저도 변경 사항을 반영하도록 새로 고쳐야 합니다.
Spring Boot DevTools는 수동으로 다시 시작하고 새로 고칠 필요성을 줄여 개발자가 변경 사항을 즉시 확인할 수 있도록 하여 개발 프로세스 속도를 크게 향상시킵니다. 이 설정 가이드는 DevTools를 Spring Boot 프로젝트에 통합하는 빠른 방법을 제공합니다.