JPA 변경 감지 ( 파이먼 방식 적용 )

song yuheon·2023년 9월 6일
0

Spring

목록 보기
59/93
post-thumbnail

JPA의 변경 감지는 데이터 변화를 효율적으로 관리해주는 기능이다.


1. 영속성 컨텍스트
JPA에서는 '영속성 컨텍스트'라는 특별한 저장 공간을 사용한다. 이곳은 마치 물건을 보관하는 창고와 같다. 이 창고에 있는 물건들은 JPA가 특별히 주의 깊게 관찰하고 있다.

2. 변경감지
창고에 있는 물건이 변하면 JPA는 이 변화를 바로 알아챈다. 이것을 '변경 감지'라고 부른다. 만약 이 변화가 중요하면 JPA는 이 변화를 데이터베이스에 알려주어 변화된 부분을 저장하게 한다.

3. 스냅샷
물건을 처음 창고에 넣을 때 JPA는 그 물건(엔터티)의 사진을 찍는다. 이 사진이 바로 '스냅샷'이다. 나중에 물건이 변하면 JPA는 이 사진과 비교하여 어떤 부분이 변했는지 확인한다.

4. 변경 감지의 장점

  • 효율적: 모든 부분을 새로 저장하는 것보다 변한 부분만 저장하기 때문에 훨씬 빠르고 효율적이다.
  • 간편: 개발자가 일일이 어떤 부분이 변했는지 확인할 필요가 없다. JPA가 다 알아서 해주니까

5. 주의 할 점

  • JPA가 변화를 알아채려면 물건이 그 창고에 있어야 한다.
  • 만약 창고 밖에서 물건을 수정하면 다시 창고 안에 넣어 JPA에게 알려줘야 변화가 저장된다.
    창고 ( = 트랜잭션 범위 )

profile
backend_Devloper

0개의 댓글