2025/06/17 3

5. JPA의 캐시

cf) 캐시(Cache): 사용되었던 데이터는 다시 사용될 가능성이 높다는 개념을 이용하여 데이터나 값을 미리 복사해놓는 임시 저장소- DB는 Secondary Memory에 저장됨-> 캐시 메모리에 접근하면 훨씬 빠름- 캐시는 성능 개선에 도움이 되기 때문에, 컴퓨터 전반에 걸쳐 많은 곳에서 사용됨- EX )CPU - L1, L2, L3DRAM, HDDCDNHTTP CacheApplication CacheProxy Cache1차 캐시(First-Level-Cache): 영속성 컨텍스트 내부에 엔티티를 저장하여 빠른 데이터 조회와 업데이트를 지원하는 메모리 기반 캐시- 객체의 동일성을 보장함 1. 1차 캐시 조회 과정1차 캐시에 엔티티가 있는 경우엔티티 조회1차 캐시에서 결과 반환1차 캐시에 엔티티가 없..

JPA 2025.06.17

4. N + 1 문제

N+1 문제: ORM을 사용하는 애플리케이션에서 관계형 데이터베이스와의 데이터 조회 작업에서 발생할 수 있는 성능 문제- 한 번의 초기 쿼리 실행으로 가져온 데이터를 사용하는 도중 추가로 N번의 쿼리를 실행해야 하는 상황- 이로 인해, 데이터베이스와의 불필요한 네트워크 통신이 발생하며, 성능 저하와 불필요한 데이터베이스 부하를 초래할 수 있음 FetchType.EAGER vs FetchType.LAZYFetchType.EAGERJPQL에서 만든 SQL을 통해 데이터를 조회이후 JPA에서 Fetch 전략을 가지고 해당 데이터와의 연관 관계인 하위 엔티티들을 추가 조회2번 과정으로 N+1 문제 발생FetchType.LAZYJPQL에서 만든 SQL을 통해 데이터 조회JPA에서 Fetch 전략을 가지지만, 지연..

JPA 2025.06.17