Ehcache는 널리 사용되는 오픈 소스 자바 캐시 라이브러리입니다. Spring Framework는 캐싱을 지원하기 위해 Spring Cache 추상화 기능을 제공합니다. 이들 라이브러리를 연동하여 쉽게 캐싱 기능을 구현할 수 있습니다.
Ehcache 의존성 추가
먼저, 프로젝트의 의존성 관리 파일(pom.xml 또는 build.gradle)에 Ehcache와 Spring Cache의 의존성을 추가해야 합니다. Maven을 사용하는 경우, 아래와 같이 의존성을 추가할 수 있습니다:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-ehcache</artifactId>
</dependency>
</dependencies>
Gradle을 사용하는 경우, 아래와 같이 의존성을 추가할 수 있습니다:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-data-ehcache'
}
캐시 설정
다음으로, 캐시 설정을 위한 구성 파일을 작성해야 합니다. 주로 application.properties 또는 application.yml 파일에 설정합니다. 아래는 application.properties 파일에 예제 설정입니다:
spring.cache.type=ehcache
이렇게 설정하면, Spring은 자동으로 Ehcache를 사용하는 캐시 관리자를 생성합니다.
메서드에 캐시 적용
이제 캐시를 적용하려는 메서드에 캐시 어노테이션을 추가해야 합니다. Spring Cache는 @Cacheable
, @CachePut
, @CacheEvict
등의 어노테이션을 제공합니다.
예를 들어, 다음은 사용자 정보를 가져오는 메서드에 @Cacheable
어노테이션을 추가한 예제입니다:
@Service
public class UserService {
@Cacheable("users")
public User getUserById(Long id) {
// 데이터베이스 등에서 사용자 정보를 가져옴
}
}
이렇게 하면 첫 번째 호출에서는 메서드 내부의 로직이 실행되어 사용자 정보가 반환됩니다. 하지만 이후 같은 id로 호출되면, 메서드는 캐시에서 사용자 정보를 가져오기 때문에 데이터베이스 호출을 피할 수 있습니다.
캐시 사용 설정
마지막으로, 캐시 사용을 스프링에 알려주기 위해 @EnableCaching
어노테이션을 추가해야 합니다. 예를 들어, 프로젝트의 메인 클래스에 다음과 같이 어노테이션을 추가할 수 있습니다:
@SpringBootApplication
@EnableCaching
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
이제 Spring Boot 애플리케이션에서 Ehcache와 Spring Cache를 연동하여 캐싱 기능을 사용할 수 있습니다.
더 자세한 내용은 아래 참고 자료를 참고하시기 바랍니다.