인프런 - 스프링부트 개념 정리(이론) - 정리

6강 - 영속성 컨텍스트란 무엇인가요?

달팽이포뇨 2023. 3. 9. 17:46

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다.

 

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

컨텍스트(Context)란? 대상에 대한 모든 정보

영속성 컨텍스트란? 데이터를 영구적으로 저장하기 위한 모든 (메타데이터)정보 - Java와 DB 사이에서 왔다갔다하는 모든 정보

ex. 동물 데이터를 저장해보자

Java가 동물 데이터 갖고 있음 -> 영속성 컨텍스트에 동물 데이터 넘겨줌 -> DB에 전달함

Java, 영속성컨텍스트, DB 정보는 동기화

Java와 DB는 영속성데이터를 통해서 정보를 주고받는다.

 

5. JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. (DB는 객체 저장 불가능)

DB의 데이터는 Object가 아니라 기본 자료형(int, string 등)이다.

ex. DB Player 테이블: int playerId, string name, int teamId / Player 객체: int playerId, string name, Team team

int teamId와 team object는 자료형이 맞지 않지만 ORM이 변환하여 불일치성을 해결해준다. 

 

------------------------------------------------------------------------------------------------

(다음)

6. JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계)

7. 방언 처리가 용이하여 Migration하기 좋음. 유지보수에도 좋음.

8. JPA는 쉽지만 어렵다.