[스프링] 특정 프로파일에서만 활성화되는 스프링 캐시 설정

스프링 프레임워크에서는 메소드의 결과를 캐시에 저장하여 같은 입력 값에 대한 반복적인 연산을 피할 수 있는 캐싱(Caching)을 지원합니다.

인터페이스나 메소드에 @Cacheable 애노테이션을 적용하면 해당 메소드 호출 결과가 캐시에 저장되고, 같은 입력 값에 대한 후속 호출 시, 캐시된 결과가 반환됩니다.

그러나 때로는 특정 환경이나 상황에서만 캐시를 활성화하고 싶을 수 있습니다. 이때 프로파일(Profile)을 사용하여 특정 환경에서만 캐시가 활성화되도록 설정할 수 있습니다.

특정 프로파일에서 캐시 설정하기

1. @Profile 애노테이션 사용

먼저, 활성화할 프로파일에 대해 @Profile 애노테이션을 사용하여 프로파일을 지정해야 합니다.

@Profile("caching-enabled")
@Configuration
public class CachingConfig {
    // 캐시 설정 코드
}

2. application.properties 파일에서 프로파일 활성화

application.properties 파일에서 원하는 프로파일을 활성화합니다. 여기서는 caching-enabled 프로파일을 활성화하는 예시입니다.

spring.profiles.active=caching-enabled

3. 메소드에 @Cacheable 애노테이션 추가

이제 캐시를 적용하고자 하는 메소드에 @Cacheable 애노테이션을 추가합니다.

@Cacheable("products")
public Product getProductById(Long id) {
    // 메소드 로직
}

4. 프로파일 활성화 여부에 따라 캐시 동작 확인

이렇게 설정한 경우, caching-enabled 프로파일이 활성화되어야 @Cacheable이 적용된 메소드의 결과가 캐시됩니다. 다른 프로파일이 활성화된 경우에는 캐시가 동작하지 않습니다.

이와 같이 스프링 프로파일을 사용하여 특정 환경이나 상황에서만 캐시를 활성화할 수 있습니다.


참고 자료: