코딩/Spring

[Spring] 캐시(Cache) 추상화와 사용법(@Cacheable, @CachePut, @CacheEvict)

it 끄적이기 2022. 11. 16. 01:08

[Spring] 캐시(Cache) 추상화와 사용법 알아보기(@Cacheable, @CachePut, @CacheEvict)

1. Gradle 설정

dependencies {
    // ...
    implementation 'org.springframework.boot:spring-boot-starter-cache'
}

2. 캐시 설정

스프링에서 캐시를 사용하기 위해서는 캐시를 적용할 대상 메소드에 @Cacheable, @CachePut, @CacheEvict 등의 어노테이션을 적용해야 합니다.

@Cacheable(value = "cacheName", key = "#key")
public Object findData(String key) {
    // ...
}

@CachePut(value = "cacheName", key = "#key")
public Object saveData(String key, Object value) {
    // ...
}

@CacheEvict(value = "cacheName", key = "#key")
public void deleteData(String key) {
    // ...
}

위의 코드는 cacheName이라는 이름의 캐시에서 key라는 키값으로 데이터를 조회하는 메소드입니다. 해당 메소드의 결과가 캐시에 저장되어 있을 경우, 캐시에서 데이터를 조회하게 됩니다.

@CachePut은 메소드가 실행되는 동안 항상 결과를 캐시에 저장하는 용도로 사용됩니다.

@CacheEvict는 캐시에서 데이터를 제거하는 용도로 사용됩니다.

캐시에서 데이터를 조회하거나 저장하고 삭제하기 위해 value와 key 속성을 사용합니다. value는 캐시 이름을, key는 캐시에서 데이터를 구분하기 위한 키값을 의미합니다.