RBF
-
Jpa hibernate의 2차 캐시Spring & JPA 2023. 12. 4. 13:08
JPA에서는 영속성 컨텍스트를 기반으로 돌아간다. 그 중심에 명령어를 저장하는 쓰기지연 저장소와 엔티티를 저장하는 1차 캐시가 있다는 것은 알고있었다. 이를 통해 DB 커넥션으로 데이터를 주고받는 작업을 최소화해서 성능상의 이점을 가져갈 수 있다는 것까지는 이해했다. 여기서 1차 캐시는 하나의 트랜잭션 단위에서 저장된다. 즉 해당 트랜잭션이 끝나면 다 날라간다. 1차캐시는 JPA의 고유 기능이라 on/off 할 수 없는 당연한 존재다. 문득 새삼 그런 생각이 들었다 트랜잭션 단위는 캐시의 특성을 활용하기엔 그다지 효율적일 것 같지 않은데?.. 그 위에 애플리케이션 메모리 단위에서 캐시 저장소가 필요할 것 같은데? 2차캐시의 동작 원리는 찾고자하는 엔티티가 1차 캐시에 없을 때 2차 캐시에서 찾는 방식이다..