필자가 배운 내용을 정리하고자 함에 의의를 뒀으니 비유적인 표현이 많고 개념을 정의함에 있어서 정석적인 정의가 아님을 인식해주었으면한다.
피드백 절대환영!!!
JPA는 영속성 컨텍스트를 가지고 있다고 한다. 영속성 컨텍스트란 무엇일까?
영속성이란 이전 포스팅에서 말했듯, 데이터가 영구적으로 저장되는 속성이다.
컨텍스트란 쉽게 말해 대상의 모든 정보이다.
예를 들어, A와 B라는 사람이 있을 때, A가 B의 컨텍스트를 가지고 있다면, A는 B의 모든 정보를 다 가지고 있고 동시에 B도 A의 모든 정보를 가질 수 있다.
앞의 두 단어를 조합해보면 데이터의 모든 정보(메타데이터)를 영구적으로 저장하는 속성이다.
근데 뭔가 말이 이상하다.
쉽게 말하자면 DB와 자바의 중간다리 역할이다. 그림으로 이해해보자.
자바에 있는 동물 데이터를 DB에 insert 명령을 내렸을 때
반대로 과일 데이터를 select 요청
영속성 컨텍스트에 과일 데이터가 있는지 본다.
없으면 DB로 접근해 데이터를 영속성 컨텍스트로 가져온다.
영속성 컨텍스트는 DB의 데이터 타입을 자바 object로 바꾼다.
바꾼 자바 object를 자바 프로그램에게 전달한다.
과일 데이터를 사과 -> 딸기로 변경
결론적으로 JPA의 영속성 컨텍스트는, 자바와 DB의 중간다리 역할을 해준다.