JPA영속성 컨텍스트의 이점 5가지.
- 1차 캐시 (First-Level Cache):
영속성 컨텍스트는 기본적으로 1차 캐시로 작동합니다. 동일한 트랜잭션 내에서 같은 엔티티를 반복적으로 조회할 때 데이터베이스에 다시 쿼리를 보내지 않고, 영속성 컨텍스트에 저장된 캐시된 엔티티를 반환합니다. 이를 통해 데이터베이스 호출 횟수를 줄여 성능을 향상시킬 수 있습니다. - 변경 감지 (Dirty Checking):
영속성 컨텍스트는 엔티티의 변경 사항을 추적합니다. 트랜잭션이 커밋될 때, 변경된 엔티티들을 자동으로 감지하여 데이터베이스에 필요한 업데이트 쿼리를 생성합니다. 개발자가 일일이 업데이트 쿼리를 작성하지 않아도 되며, 데이터의 일관성을 유지할 수 있습니다. - 지연 로딩 (Lazy Loading):
영속성 컨텍스트는 필요할 때까지 연관된 엔티티를 로드하지 않는 지연 로딩을 지원합니다. 이는 메모리 사용량을 줄이고, 불필요한 데이터베이스 액세스를 피하여 성능을 최적화할 수 있습니다. - 트랜잭션 처리의 일관성 (Transactional Write-Behind):
영속성 컨텍스트는 트랜잭션이 끝날 때까지 데이터베이스에 변경 사항을 지연시킵니다. 트랜잭션이 완료되면 변경 사항을 한 번에 적용합니다. 이를 통해 트랜잭션 처리의 일관성을 보장하며, 데이터베이스에 대한 불필요한 접근을 최소화할 수 있습니다. - 식별자 동일성 보장 (Entity Identity Management):
동일한 영속성 컨텍스트 내에서 조회된 동일한 식별자의 엔티티는 항상 동일한 객체로 보장됩니다. 이는 애플리케이션에서 엔티티의 동일성을 일관되게 유지할 수 있도록 하여, 개발자가 객체 비교 시 혼란을 겪지 않게 합니다.
'면접준비' 카테고리의 다른 글
www.google.com을 접속할 때 일어나는 일에 대해 OSI 7계층과 연관지어 설명해보세요 (0) | 2024.08.19 |
---|---|
배열과 링크드 리스트의 차이를 설명해주세요 (0) | 2024.08.19 |
데이터베이스에서 인덱스를 사용하는 이유 및 장단점에 대해 설명해주세요. (0) | 2024.08.19 |
좋은 코드란 무엇인가? (0) | 2024.08.19 |
JPA 엔티티 간 연관관계 매핑에 대해서 설명해 주세요. (0) | 2024.08.12 |