[Spring] @Cacheable 동일 클래스 내부 메서드 호출시 미동작 원인 및 해결
이유는 Spring AOP! Spring Cache (EhCache 등 구현) 사용시 동일 클래스(Bean)내 @Cacheable 설정된 적용된 메서드를 자기 호출(Self-invocation)할 경우 Proxy Class에서 이미 캐싱된 결과를 가져오지 못하고 메서드를 다시 실행하게 됩니다. 이유는 @Cacheable 어노테이션을 통한 cache처리는 @Async, @Transactional 등과 마찬가지로 Spring AOP(Aspect-Oriented Programming)를 이용하기 때문입니다. Spring Cache는 프록시(Proxy)를 통해 동작하고 이를 조금 더 확장한 개념이 Spring AOP인데 이를 통해 로깅, 트랜잭션, 캐시 처리등 핵심로직에 처리 중 반복되는 횡단의 관심사를 모아서..