[SPRING] JPA 영속성 컨텍스트 이점 5가지, JPA 사용 이유

이정환·2023년 7월 25일

[CS] SPRING

목록 보기
12/22

1. JPA 영속성 컨텍스트 이점 5가지 설명

  • == 영속성 컨텍스트는 엔티티를 영구 저장하는 환경을 의미합니다. 영속성 컨텍스트를 쓰는 이유는 1차캐시, 동일성 보장, 쓰기지연, 변경감지(더티체킹), 지연로딩이 있습니다
    • 1차캐시 - 조회가 가능하며 1차 캐시에 없으면 DB에서 조회하여 1차 캐시에 올려 놓습니다.
    • 동일성 보장 - 동일성 비교가 가능합니다(주소 ,==)
    • 쓰기지연 - 트랜잭션 커밋전까지 SQL 바로 보내지 않고 모아서 보낼 수 있습니다
    • 변경감지(더티체킹) -1차 캐시에 들어온 데이터를 스냅샷 찍습니다. 커밋 시점에 엔티티와 스냅샷 비교해서 update SQL을 생성합니다. 영속성 컨텍스트 내부에서 수정된 값유무확인 후 동작 유무
    • 지연로딩 - 객체 간의 연관관계가 있을 때, 지연 로딩을 사용하면 해당 연관된 객체가 실제로 사용될 때까지 로드되지 않습니다.

2. JAP 쓰는 이유

  • == SQL로 인한 RDBMS에 종속적이지 않으며 객치지향 코드로 짤 수 있습니다. 생산성이 올라갑니다. 또한 RDBMS Vendor에 관계없이 동일한 쿼리를 작성해서 같은 동작 기대할 수 있습니다. database dialect를 지원하기 때문입니다. DB와 OOP 간의 패러다임 불일치 가령, 객체 참조 관련 문제를 해결할 수 있습니다.

0개의 댓글