기술면접 준비

JPA의 더티 체킹이란 무엇인가?

Albosa2lol 2024. 7. 30. 17:28
  • 답안
    • JPA (Java Persistence API)에서 더티 체킹(Dirty Checking)이란 영속성 컨텍스트(persistence context)에 의해 관리되는 엔티티 객체가 변경된 것을 자동으로 감지하여 데이터베이스에 반영하는 기능을 말합니다.
    • 더티 체킹을 통해 개발자는 데이터베이스에 변경사항을 직접 수동으로 적용하지 않아도 됩니다.
  • JPA 더티 체킹 동작 (참조)
    1. 엔티티 로드: JPA는 데이터베이스에서 엔티티를 조회하여 영속성 컨텍스트에 저장
    2. 엔티티 수정: 애플리케이션 코드에서 엔티티의 속성 값을 변경
    3. 트랜잭션 종료: 트랜잭션이 종료될 때 JPA는 영속성 컨텍스트에 있는 엔티티의 변경사항을 감지
    4. SQL 생성 및 실행: 변경된 엔티티에 대해 필요한 SQL 문(UPDATE, INSERT, DELETE)을 생성하여 데이터베이스에 실행