JPA(P)

이경현·2024년 11월 4일

영속성 (persistence) :
JPA(Java Persistence API)
P 의 Persistence 는 영속이라는 의미로
데이터를 영구적으로 저장한다는 뜻으로 사용한다
즉, JPA는 Java 프로그램에서 데이터를 영구적으로 저장할 때 사용하는 인터페이스이다

JPA(Java Persistence API) :
영속성
persistence 를 사용하는 이유
JVM 외부에 객체를 영원히 관리하기 위해서 영속성을 사용한다
java라는 것은 JVM 세상에서 존재한다
JVM이 사라지면 java 객체 또한 사라진다
JPA는 이를 JVM 밖에서도 유지하고 싶었던것
그래서 JVM에 있던 객체를 JVM 밖에서도 지속하고 싶다는 생각에서 부터 영속화라는 개념이 나온것
그것은 데이터베이스가 될 수도 텍스트 파일이 될 수도 있다
중요한것은 JVM 외부에서도 객체를 유지한다는 것이다

JPA(ORM) 말고 MyBatis 사용해도 영속인가 ?
객체를 JVM 외부에서 유지를 하고싶다. 라는 것은 결국 데이터 베이스에 저장한다는 것인데
JPA를 사용하지 않고, MyBatis를 쓴다고 해도 객체를 JVM 외부인 데이터 베이스에 지속시킬 수 있는 것

하지만, JPA에서만 영속화라는 persist라는 의미를 사용하는 이유는
MyBatis는 객체 지향적 사고가 아닌 데이터 베이스 위주의 데이터 베이스 매퍼 객체일 뿐이다.

물론 JVM 외부인 데이터 베이스에서 객체를 유지하는 것은 맞지만 패러다임 자체가 다른 것

객체를 외부에서 유지하고 싶다가 아닌 데이터 베이스에 맞춰 매핑을 하고 싶다라는 것이 핵심이다.
반면, JPA는 데이터 베이스가 메인이 아니다. 데이터베이스에 영향을 덜 받고 객체지향적으로 설계하기 위한 것이다.
즉, 객체를 외부에 지속하고 싶은 것이다.
정리를 하자면 MyBatis는 DB → 객체라면 JPA는 객체 → DB와 같은 개념이 되는 것이다.
그렇기 때문에 JPA는 영속이라는 의미를 사용하고, MyBatis에서는 그런 의미를 사용하지 않는다.

0개의 댓글