본문 바로가기

Spring Boot/Cache

(24)
로컬 캐시 구현과 최적화 : 로컬 캐시 성능 측정 성능 측정 매우 중요하지 - 캐시의 성능을 측정하는 기본 지표인 적중률(Cache Hit Ratio) 개념 - 캐시의 크기와 성능의 상관관계를 실험적으로 학습하기 - 메모리 사용량을 효율적으로 모니터링 하는법 - 간단한 로드 테스트(Load Test) 환경을 구성하여 캐시의 실제 효과 측정하기 - 실무 환경에서 캐시 성능을 분석하고 최적화할 수 있는 기준이란? 캐시 성능 측정 개요로컬 캐시(Local Cache)는 빠른 응답속도를 위해 사용되지만, 무작정 캐시를 추가한다고 항상 성능이 좋아지는건 아님성능을 올바르게 측정하기 위해서는 세가지 핵심지표를 이해해야함지표설명Hit Ratio(적중률)캐시에서 데이터를 성공적으로 가져온 비율Miss Ratio(미적중률)캐시에 데이터가 없어 원본 데이터 소스를 조회..
로컬 캐시 구현과 최적화 : 로컬 캐시 구성 최적화 최적화하기 - 로컬 캐시(Local Cache)의 크기 제한과 메모리 사용량 고려 기준 이해하기 - 시간 기반(Time-Based) 및 접근 기반(Access-based) 만료 정책 설정법 - 캐시 항목의 수명을 효율적으로 관리하는 전략 - 캐시 항목 제거(Expire, Evict) 이벤트를 감지하고 후처리를 구현하는 법 - 실무 환경에서 캐시 최적화를 적용하는 법 로컬 캐시 구성 최적화로컬 캐시는 애플리케이션 내부에서 직접 데이터를 저장하기 때문에 빠르지만,무한정 데이터를 쌓을 경우 메모리 과다 사용으로 이어질 수 있음따라서 캐시를 효과적으로 사용하기 위해서는 크기 제한, 만료 정책, 제거 이벤트 처리를 적절히 조합해야함 1. 최적화의 필요성캐시를 잘못 구성하면 여러 문제가 발생할 수 있다 - Ou..
로컬 캐시 구현과 최적화 : 로컬 캐시 구현 옵션 로컬 캐시 구현하기 의존성, 이거랑 밑에 있는 EhCache // 이 안에 caffeineCacheManager가 들어있음 implementation 'org.springframework.boot:spring-boot-starter-cache' //caffeine implementation 'com.github.ben-manes.caffeine:caffeine' - 로컬 캐시(Local Cache)의 개념, 필요성 - Spring에서 사용할 수 있는 다양한 로컬 캐시 구현체 - ConcurrentMapCacheManager, Caffeine Cache, EnCache의 구조와 동작 방식 - 각 캐시 구현체의 장단점 분석, 적절한 선택 기준?? - 실무에서 로컬 캐시 적용하고 테스트..
Spring Cache 기본 사용 : SpEL을 활용한 동적 캐시 키 SpEL ??? 스펠? - SpEL(Spring Expression Language)의 기본 개념 - @Cacheable, @CachePut, @CacheEvict에서 SpEL을 활용해 동적 키를 생성하는 법 - 메서드 파라미터, 리턴값, 객체 프로퍼티 등을 참조하는 표현식 작성 - 복합 키(Composite Key)를 구성하는 실무 예시 - 사용자 정의 함수를 SpEL 내에서 호출하는 법 SpEL(Spring Expression Language)SpEL은 Spring에서 제공하는 표현식 언어(Expression Language)로,런타임 시점에 동적으로 값을 계산하거나 프로퍼티, 메서드, 변수에 접근할 수 있는 기능들을 제공한다고 한다Spring Cache에서는 SpEL을 활용하여 캐시 키를 동적으로..
Spring Cache 기본 사용 : Spring Cache 활성화 및 주요 캐시 애너테이션 - Spring Cache의 기본 개념, 동작 원리 이해 - @EnableCaching을 통해 캐시 기능을 활성화 하는 법 - @Cacheable, @CachePut, @CacheEvict, @Caching, @CacheConfig 애너테이션의 역할과 사용법 - 캐시의 생성, 갱신, 삭제 과정을 코드 예제로 실습 - 각 애너테이션이 실무에서 어떤 상황에서 사용되는가? Spring Cache 기본 개념메서드의 실행 결과를 캐시에 저장하고, 같은 입력값으로 다시 호출될 때 DB나 외부 API 호출없이 캐시된 결과를 반환하는 기능성능 향상과 부하 감소를 위해 매우 자주 사용되는 패턴임 1. 핵심 동작 원리1) 메서드가 처음 호출되면, 결과가 캐시에 저장됨 - > 메서드 실행됨2) 동일한 파라미터로 다시 호출 ..
Spring Cache 추상화 : Spring Boot 캐시 자동 설정 스프링부트 캐시 자동..? 설?정 - Spring Boot의 자동 설정(Auto Configuration) 원리 - CacheManager의 기본 설정이 자동으로 적용되는 과정 - 다양한 캐시 구현체(Caffeine, EnCache, Redis 등등..)가 자동으로 감지되는 구조 - application.yml을 활용하여 캐시 속성을 설정하고 커스터마이징 하는법 - 실무에서 캐시 설정을 분리하고 관리하는 패턴 Spring Boot 캐시 자동 설정 개요Spring Boot에서는 별도의 설정 없이 자동으로 캐시 환경을 구성함spring-boot-starter-cache 의존성을 추가하면@EnableCaching 애너테이션을 통해 자동으로 캐시 관련 Bean(CacheManager, CacheResolver..
Spring Cache 추상화 : 캐시 동작 원리 캐시는 어떻게 동작하는가? - Spring Cache의 실제 동작 과정 - 프록시 기반 AOP(Aspect-Oriented Programming) 메커니즘 - 캐시 키 생성 메커니즘을 이해하고 커스터마이징 하는법 - 메서드 실행 전후의 캐시 조회, 저장, 업데이트 흐름 파악 - 실무에서 발생하는 캐시 동작 관련 문제 및 해결법 Spring Cache 동작 원리 개요내부적으로 AOP(Aspect-Oriented Programming)을 이용하여 캐시 로직을 자동으로 처리한다개발자가 직접 캐시를 조작하지 않아도 Spring이 메서드 호출 전후에 캐시 로직을 프록시로 감싸서 실행한다 * Spring Cache는 비즈니스 메서드를 프록시로 감싸서, 실행 전후에 캐시를 조회하거나 업데이트 한다따라서 @Cache..
Spring Cache 추상화 : Spring Cache 핵심 컴포넌트 스프링 캐시에서 핵쉼적인 컴포넌트 @EnableCaching 애너테이션을 @Configuration 클래스에 반드시 추가해줘야 캐시 기능이 활성화된다 - Spring Cache 핵심 컴포넌트인 CacheManager, Cache, CacheResolver의 역할과 책임 이해 - 각 구성 요소가 캐시 추상화 계층에서 어떤 역할을 수행하는지 학습 - Cache 객체가 실제 캐시 엔트리를 어떻게 저장, 조회, 삭제하는가? - CacheResolver가 복잡한 환경에서 동적으로 캐시를 결정하는 방법 Spring Cache 핵심 컴포넌트Spring Cache는 다음 세 가지 핵심 컴포넌트를 중심으로 동작한다 - CacheManager : 캐시 생성 및 관리 - Cache : 실제 캐시 저장소 - CacheRes..