[Spring] 영속성 컨텍스트

strongmhk·2023년 7월 13일
0

Spring

목록 보기
16/25
post-thumbnail

📌포스팅에 앞서..

필자가 배운 내용을 정리하고자 함에 의의를 뒀으니 비유적인 표현이 많고 개념을 정의함에 있어서 정석적인 정의가 아님을 인식해주었으면한다.
피드백 절대환영!!!







📌JPA는 영속성 컨텍스트를 가지고 있다

JPA는 영속성 컨텍스트를 가지고 있다고 한다. 영속성 컨텍스트란 무엇일까?







❓영속성

영속성이란 이전 포스팅에서 말했듯, 데이터가 영구적으로 저장되는 속성이다.




❓컨텍스트

컨텍스트란 쉽게 말해 대상의 모든 정보이다.
예를 들어, A와 B라는 사람이 있을 때, A가 B의 컨텍스트를 가지고 있다면, A는 B의 모든 정보를 다 가지고 있고 동시에 B도 A의 모든 정보를 가질 수 있다.




❓영속성 컨텍스트

앞의 두 단어를 조합해보면 데이터의 모든 정보(메타데이터)를 영구적으로 저장하는 속성이다.
근데 뭔가 말이 이상하다.
쉽게 말하자면 DB와 자바의 중간다리 역할이다. 그림으로 이해해보자.


자바에 있는 동물 데이터를 DB에 insert 명령을 내렸을 때

  • DB에 바로 접근하는게 아니고 중간에 있는 영속성 컨텍스트에서 자바의 object를 DB의 데이터 타입으로 바꾼다.
  • 그리고 데이터가 영속성 컨텍스트에서 DB로 insert된다.

반대로 과일 데이터를 select 요청

  • 영속성 컨텍스트에 과일 데이터가 있는지 본다.

  • 없으면 DB로 접근해 데이터를 영속성 컨텍스트로 가져온다.

  • 영속성 컨텍스트는 DB의 데이터 타입을 자바 object로 바꾼다.

  • 바꾼 자바 object를 자바 프로그램에게 전달한다.


과일 데이터를 사과 -> 딸기로 변경

  • 영속성 컨텍스트에 있는 과일 데이터가 사과 -> 딸기로 바뀐다.
  • 영속성 컨텍스트가 DB로 변경을 commit한다.
  • DB의 과일 데이터도 사과 -> 딸기로 바뀐다.

결론적으로 JPA의 영속성 컨텍스트는, 자바와 DB의 중간다리 역할을 해준다.







📝정리

  • 영속성 컨텍스트는 자바 데이터를 DB에 저장할 때 필요한 모든 메타 데이터를 가지고있다
  • 쉽게 말해 DB와 자바의 중간다리 역할이다
profile
저 커서 개발자가 될래요!

0개의 댓글