본문 바로가기

면접준비

JPA 영속성 컨텍스트의 이점(5가지)을 설명해주세요.

JPA영속성 컨텍스트의 이점 5가지.

 

  • 1차 캐시 (First-Level Cache):
    영속성 컨텍스트는 기본적으로 1차 캐시로 작동합니다. 동일한 트랜잭션 내에서 같은 엔티티를 반복적으로 조회할 때 데이터베이스에 다시 쿼리를 보내지 않고, 영속성 컨텍스트에 저장된 캐시된 엔티티를 반환합니다. 이를 통해 데이터베이스 호출 횟수를 줄여 성능을 향상시킬 수 있습니다.
  • 변경 감지 (Dirty Checking):
    영속성 컨텍스트는 엔티티의 변경 사항을 추적합니다. 트랜잭션이 커밋될 때, 변경된 엔티티들을 자동으로 감지하여 데이터베이스에 필요한 업데이트 쿼리를 생성합니다. 개발자가 일일이 업데이트 쿼리를 작성하지 않아도 되며, 데이터의 일관성을 유지할 수 있습니다.
  • 지연 로딩 (Lazy Loading):
    영속성 컨텍스트는 필요할 때까지 연관된 엔티티를 로드하지 않는 지연 로딩을 지원합니다. 이는 메모리 사용량을 줄이고, 불필요한 데이터베이스 액세스를 피하여 성능을 최적화할 수 있습니다.
  • 트랜잭션 처리의 일관성 (Transactional Write-Behind):
    영속성 컨텍스트는 트랜잭션이 끝날 때까지 데이터베이스에 변경 사항을 지연시킵니다. 트랜잭션이 완료되면 변경 사항을 한 번에 적용합니다. 이를 통해 트랜잭션 처리의 일관성을 보장하며, 데이터베이스에 대한 불필요한 접근을 최소화할 수 있습니다.
  • 식별자 동일성 보장 (Entity Identity Management):
    동일한 영속성 컨텍스트 내에서 조회된 동일한 식별자의 엔티티는 항상 동일한 객체로 보장됩니다. 이는 애플리케이션에서 엔티티의 동일성을 일관되게 유지할 수 있도록 하여, 개발자가 객체 비교 시 혼란을 겪지 않게 합니다.