많이쓰이는 DB용어
트렌젝션 - 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
트렌젝션매니저 - Spring에서 제공하는 트렌젝션 관리 기능과 JPA를 연결하는 역할을 수행.
@Transactional - 클래스나 메서드에 삽입하면, AOP레벨(프록시를 사용하여)에서 트렌젝션매니저를 이용한 동작을 공통으로 적용.
앤티티매니저 - 영속성 컨텍스트를 관리하는 인터페이스 - 엔티티의 저장/수정/삭제/조회 작업을 수행 - 스레드 세이프하지 않으므로 한트레젝션 내에서만 사용 - 앤티티매니저펙토리는 스레드세이프하므로 공유 가능
영속성컨텍스트 - JPA의 엔티티를 관리하는 1차 캐시 역할을 하는 메모리 공간 - 엔티티와 DB데이터간의 상태 동기화를 책임 - 1차캐싱 / 변경 감지 / 지연 로딩 의 특징을 갖는다 - 지연로딩 : 관계된 엔티티를 실제로 필요할때만 가져오며, 변경점을 한번만 commit한다
스냅샷 - DB스냅샷 : - 트렌젝션이 시작될때 생성된다. - 독립적인 데이터베이스 복사본으로, 원본데이터 변경과 무관하다. - 고급 격리 수준(REPEATABLE READ, SERIALIZABLE)에서 MVCC(Multi-Version Concurrency Control)를 구현할 때 사용한다. - 물리적인 복사본이 아닌, 논리적으로 매 쿼리마다 동적으로 가공이 되는 방식이다. - 앤티티매니저_스냅샷 : - 엔티티가 영속성 컨텍스트에 로드될 때 생성된다. - 엔티티의 초기 상태를 저장하여 변경 감지에 사용된다.