[java] Ehcache와 캐시 시간 간격 설정 방법

Ehcache는 자바 기반의 오픈 소스 캐싱 라이브러리로, 많은 프레임워크와 애플리케이션에서 사용됩니다. 이 라이브러리는 메모리나 디스크에 데이터를 캐시하여 애플리케이션 성능을 향상시킵니다. 이번 글에서는 Ehcache의 캐시 시간 간격을 설정하는 방법에 대해 알아보겠습니다.

CacheManager 생성

먼저, Ehcache를 사용하기 위해 CacheManager를 생성해야 합니다. CacheManager는 Ehcache 캐시들의 메인 객체로써, 캐시들을 관리하고 생성합니다. 다음은 CacheManager를 생성하는 코드입니다.

import org.ehcache.CacheManager;
import org.ehcache.config.CacheConfiguration;
import org.ehcache.config.Configuration;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ConfigurationBuilder;

// CacheManager 생성
Configuration config = ConfigurationBuilder.newConfigurationBuilder().build();
CacheManager cacheManager = CacheManagerBuilder.newCacheManager(config);
cacheManager.init();

위 코드에서는 ConfigurationBuilder를 사용하여 캐시 메니저를 빌드합니다. 이때, ConfigurationBuilder.newConfigurationBuilder() 메소드를 호출하여 기본 설정으로 Configuration 객체를 생성합니다.

캐시 생성과 시간 간격 설정

CacheManager를 생성한 후, 다음 단계로 캐시를 생성하고 시간 간격을 설정합니다. 다음은 캐시를 생성하고 시간 간격을 설정하는 코드입니다.

import org.ehcache.Cache;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.ExpiryPolicyBuilder;
import org.ehcache.config.units.Duration;

// 캐시 생성
CacheConfiguration<String, String> cacheConfig = CacheConfigurationBuilder.newCacheConfigurationBuilder(
    String.class, String.class, ResourcePoolsBuilder.heap(10))
    .withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(60)))
    .build();

Cache<String, String> cache = cacheManager.createCache("myCache", cacheConfig);

위 코드에서는 CacheConfigurationBuilder를 사용하여 캐시 구성을 빌드합니다. 여기에서 withExpiry() 메소드를 사용하여 캐시의 시간 간격을 설정합니다. ExpiryPolicyBuilder.timeToIdleExpiration() 메소드를 호출하여 캐시 아이템이 유효한 시간을 설정할 수 있습니다. 위 예제에서는 60초 동안 아이템이 사용되지 않으면 유효하지 않게 됩니다.

캐시 사용

캐시를 생성하고 시간 간격을 설정한 후에는 캐시를 사용하여 데이터를 읽고 쓸 수 있습니다. 다음은 캐시를 사용하는 예제 코드입니다.

// 캐시에 데이터 추가
cache.put("key1", "value1");
cache.put("key2", "value2");

// 캐시에서 데이터 읽기
String value1 = cache.get("key1");
String value2 = cache.get("key2");

위 예제에서는 put() 메소드를 사용하여 캐시에 데이터를 추가하고, get() 메소드를 사용하여 캐시에서 데이터를 읽습니다.

마무리

이제 캐시 시간 간격을 설정하는 방법에 대해 알아보았습니다. Ehcache를 사용하여 애플리케이션의 성능을 향상시키고 데이터를 효율적으로 관리할 수 있습니다. 추가적인 설정이나 기능에 대해서는 Ehcache의 공식 문서를 참고하세요.

참고 자료