반응형

cache-evict 2

3편. Cache와 Transaction - 커밋은 언제, 캐시는 언제 반영되는가

이 글은 Spring Framework 공식 문서(Cache Abstraction)를 기반으로 캐시와 트랜잭션이 함께 있을 때 실제로 어떤 순서로 동작하는지를 정리합니다. 특히 @Transactional과 @Cacheable, @CacheEvict가 겹칠 때 발생하는 오해를 호출 흐름 중심으로 설명합니다.들어가며캐시와 트랜잭션이 함께 등장하는 순간, 개발자는 본능적으로 이렇게 기대합니다.트랜잭션이 커밋되면 캐시도 반영될 것이다롤백되면 캐시는 자동으로 되돌려질 것이다하지만 Spring Cache 공식 문서는 이 기대를 명확히 보장하지 않습니다. 캐시와 트랜잭션은 서로 다른 책임을 가진 독립적인 메커니즘이기 때문입니다.1. Spring Cache는 트랜잭션을 “알지 못한다”공식 문서 관점에서 가장 중요한 전..

1편. Spring Cache Abstraction - 캐시는 왜 ‘추상화’되었을까?

이 글은 Spring Framework 공식 문서(Cache Abstraction)를 기반으로 “왜 Spring은 Cache를 추상화했는가”를 설계 관점에서 정리합니다.들어가며캐시는 대부분의 서버 애플리케이션에서 성능 최적화의 마지막 카드처럼 사용됩니다. 하지만 Spring 공식 문서를 읽다 보면, 캐시는 단순한 성능 옵션이 아니라 애플리케이션 설계의 일부로 다뤄집니다.Spring은 왜 Redis, EhCache, Caffeine 같은 구체적인 기술 대신 Cache Abstraction이라는 계층을 만들었을까요?이 질문에 대한 답을 이해하지 못하면, Spring Cache는 곧 이렇게 사용됩니다.“조회 느리니까 @Cacheable 붙이자”“Redis 있으니까 그냥 캐시 쓰는 거지”이 글에서는 공식 문서가..

반응형