자기개발 이야기 10일차

김현성·2020년 5월 28일
0

오늘은 김영환강사님의 영속성컨테스트에 대한 강의를 들었다.
아직 완벽하게 설명을 알아듣지는 못했지만 김영환강사님이 말했듯이 영속성컨테스트는 매우 깊은 내용이기 때문에 급하게 막 외울려고 하지는 않았다. JPA에서 find나 persist를 하면 DB에 바로 select나 insert를 하는게 아니라고 한다.(내가 설명을 잘이해했다면 ㅎㅂㅎ) find나 persist를 하면 JPA 영속상태가 되었다라고 한다. 그전에 하기전은 비영속상태이다. 영속상태가 되었다는것은 영속성컨테스트에 저장된 상태이고 준영속상태는 저장되었다가 분리된상태(merge를 하면 다시 영속상태를 만들어준다.) 그리고 삭제를 원한다면 삭제를한다. 김영환강사님이 말하기를 EntityManager가 영속성컨테스트라고 보면 된다고한다.(생자바환경에서는) 그러므로 내가 이해한바는 EntityManager를 이용해서 find나 persist를 하게되면 그것이 영속성컨테스트에 저장되었다라고 이해를 하였다.(자바와 DB의 중간장소 느낌이든다.) 영속성컨테스트의 이점으로는 1차캐시, 동일성, 트랜잭션을 지원하는 쓰기 지연, 변경감지, 지연로딩이 있다고 한다. 영속성컨테스트는 트랜잭선안에 한묶음 안에있어야 제대로 돌아간다고한다. 다행이 자바에는 @트랜잭션이 있어서 쉽게 할수있다고 한다. 오늘도 많은걸 알게된 강의 내용인거같다.

profile
내가 이해한 코드가 다른 개발자도 이해한다! 안녕하세요 JAVA 개발자 입니다.

1개의 댓글

comment-user-thumbnail
2020년 6월 2일

멋져요

답글 달기