JPA = ORM + 캐시?JPA를 쓰다 보면 마치 자동으로 캐시를 써주는 것 같은 경험을 하게 됩니다. 같은 데이터를 여러 번 조회해도 SQL 쿼리가 한 번만 날아가고, 트랜잭션 내에서 바뀐 값이 자동으로 DB에 반영되기도 하죠. 이 모든 비밀은 영속성 컨텍스트에 있습니다.1. 영속성 컨텍스트는 1차 캐시다JPA에서 영속성 컨텍스트는 1차 캐시 역할을 합니다.1차 캐시란?트랜잭션 범위 내에서만 유효한 메모리 캐시입니다.동일한 EntityManager에서 같은 엔티티를 여러 번 조회해도 DB에서 재조회하지 않고 캐시에서 반환합니다.2. persist()와 캐시의 관계📍 persist() 호출 시엔티티는 영속성 컨텍스트에 저장됩니다.이후 해당 엔티티는 1차 캐시에 존재합니다.같은 엔티티를 다시 조회하면 ..