JPA 1차 캐시와 2차 캐시 — 캐시 전략으로 DB 부하를 줄이는 방법
·
JPA
들어가며안녕하세요.JPA에는 캐시(Cache) 가 두 단계로 존재합니다. 바로 1차 캐시와 2차 캐시입니다.이전 글에서 영속성 컨텍스트와 엔티티 상태를 다루면서 1차 캐시를 잠깐 언급했습니다. 처음엔 "캐시가 왜 두 개나 필요하지?" 싶었는데 공부하면서 각각의 역할이 꽤 다르다는 걸 알게 됐습니다.이번 글에서는 1차 캐시가 정확히 어떻게 동작하는지, 그리고 1차 캐시만으로는 왜 부족한지, 그 한계를 2차 캐시가 어떻게 보완하는지 정리해보려 합니다. 캐시를 잘못 쓰면 데이터 불일치 같은 버그로 이어질 수 있어서 언제 써야 하고 언제 쓰면 안 되는지도 함께 정리했습니다.1. 1차 캐시란?1차 캐시는 영속성 컨텍스트 내부에 있는 Map 형태의 저장소입니다.별도 설정 없이 JPA를 사용하는 순간부터 항상 동작하..
JPA 영속성 컨텍스트와 엔티티 상태 관리 — 마법 같은 동작의 원리
·
JPA
들어가며JPA를 사용하면 데이터베이스를 객체지향적으로 다룰 수 있을 뿐만 아니라 반복적인 SQL 작성 시간을 줄여 비즈니스 로직 개발에 더욱 몰입할 수 있습니다. 하지만 내부적으로 엔티티가 어떻게 관리되고 동작하는지 정확히 모른 채 사용한다면 복잡한 비즈니스 상황에서 의도치 않은 쿼리가 발생하거나 데이터 정합성이 깨지는 결과를 초래할 수 있스빈다. 결국 JPA를 '잘' 쓰기 위해서는 내부적으로 엔티티가 어덯게 관리되고 동작하는지 잘 알고 있어야 합니다.이번 글에서는 JPA의 핵심 중의 핵심인 영속성 컨텍스트(Persistence Context)의 개념과 엔티티의 상태 관리에 대해 다루어 보겠습니다.1. 영속성 컨텍스트란 무엇인가?영속성 컨텍스트(Persistence Context) 는 한 마디로 ..