반응형

Proxy 2

2편. @Cacheable - 언제 실행되고, 언제 실행되지 않는가

이 글은 Spring Framework 공식 문서(Cache Abstraction)를 기반으로 @Cacheable이 실제로 언제 동작하고, 어떤 경우에 동작하지 않는지를 호출 흐름 중심으로 정리합니다.들어가며Spring Cache를 쓰다 보면 이런 경험을 하게 됩니다.분명 @Cacheable을 붙였는데 캐시가 안 된다한 번은 캐시가 되고, 한 번은 안 된다로컬에서는 되는데 운영에서는 다르게 동작한다이런 문제의 대부분은 캐시 설정이 아니라, @Cacheable의 실제 실행 시점과 조건을 정확히 이해하지 못해서 발생합니다.1. @Cacheable은 “메서드 실행 전”에 동작한다Spring 공식 문서는 @Cacheable의 동작을 명확하게 설명합니다.The caching abstraction applies c..

[Spring 공식 문서 기반] Transaction 3. @Transactional은 언제 시작되고 언제 끝날까

2편에서는 Spring Transaction의 핵심 추상화인PlatformTransactionManager가 왜 인터페이스로 설계되었는지를 살펴봤습니다.이제 다음 질문으로 자연스럽게 이어집니다.그럼 @Transactional은 정확히 언제 트랜잭션을 시작하고, 언제 끝낼까?이 질문에 답하지 못하면,왜 어떤 메서드는 트랜잭션이 안 걸리는지왜 내부 호출에서는 동작하지 않는지왜 예상과 다른 시점에 커밋되는지를 끝까지 설명할 수 없습니다.1. @Transactional은 메서드가 아니다많은 개발자가 @Transactionl을“메서드 위에 붙이는 어노테이션”으로만 이해합니다.하지만 Spring 공식 문서에서 @Transactionl은AOP 설정 정보입니다.즉,어노테이션 자체가 트랜잭션을 시작하지 않고Spring이..

반응형