목차
- Post not found: spring-boot/spring-framework/springboot-actuator
- Post not found: spring-boot/spring-framework/springboot-messageresource
- Post not found: spring-boot/spring-framework/configuration/springboot-WebMvcConfigurer
- Post not found: spring-boot/spring-framework/configuration/springboot-autoconfiguration
참고
- https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-caching.html
- https://www.baeldung.com/spring-cache-tutorial
Spring Boot 캐시 추상화
Spring Boot 에서는 캐시를 쉽게 사용할 수 있도록 캐싱 기능들을 추상화해 제공합니다. 캐싱 추상화 가능으로 개발자는 특정 캐시 저장소에 종속적이지 않고 일관된 방식으로 캐싱기능을 사용할 수 있습니다.
✅ 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-cache' |
✅ Cache 활성화
@EnableCaching
를 이용해 Cache 기능을 활성화 할 수 있다.
|
✅ Cache 관련 어노테이션
스프링에서는 캐싱을 쉽게 제어할 수 있도록 캐시관련 어노테이션 들을 제공합니다.
1. @Cacheable
메서드 호출 시 동일한 파라미터 값이 있으면 캐시된 결과를 반환하여 실제 메서드 실행을 건너뜁니다.
// 1. 캐시에서 사용자 조회 (@Cacheable) |
2. @CachePut
메서드 실행 후 결과를 캐시에 업데이트합니다. 데이터 수정 후 최신 캐시를 유지할 때 사용합니다.
// 2. 사용자 업데이트 후 캐시 갱신 (@CachePut) |
3. @CacheEvict
특정 조건에 맞는 캐시 항목을 제거합니다. 데이터 삭제나 업데이트 시 캐시 무효화에 유용합니다.
// 3. 사용자 삭제 후 캐시 제거 (@CacheEvict) |
4. @Caching
@Caching 어노테이션은 하나의 메서드에 여러 캐시 관련 애너테이션 (@Cacheable, @CachePut, @CacheEvict 등) 을 함께 적용할 수 있도록 그룹화하는 역할을 합니다.
// 4. 복합 캐시 작업: 캐시 조회, 캐시 업데이트, 그리고 다른 캐시("userList") 제거 (@Caching) |
5. @CacheConfig
@CacheConfig 어노테이션은 클래스 레벨 에서 공통 캐시 설정을 정의할 수 있도록 도와줍니다. 이를 통해, 해당 클래스의 모든 캐시 관련 메서드에서 반복적으로 동일한 캐시 이름, 캐시 매니저 등과 같은 설정을 지정할 필요 없이 한 번에 설정할 수 있습니다.
|