JPA 개념

OUO·2022년 1월 16일
0
post-thumbnail

1. Java Persistnece API

자바 프로그램을 할때 영구적으로 데이터를 저장하기 위해서 필요한 인터페이스

API = 애플리케이션 (A) : 프로그램
프로그래밍 (P) : 프로그래밍
인터페이스 (I) : 인터페이스 = 상하관계가 존재하는 약속 / 프로토콜 = 동등한 관계

2. ORM 기술

ORM(Object Relational Mapping) : object를 데이터베이스에 연결하는 방법론
인터페이스의 규칙을 지키며 자바에서 클래스를 만들어서 실행을 하면 데이터베이스에 테이블이 자동으로 생성되기 하는 기법
= 나의 하인

3. 반복적인 CRUD 작업을 생략

insert - Create
select,selectAll - Read
update - Update
delete = Delete
-> 반복되는 작업들을 JPA(함수)가 단순하게 처리되도록 도와줌

4. 영속성 컨텍스트

영속성 : 데이터 -> 영구적으로 저장
컨텍스트 : 대상에 대한 모든 정보를 가지고 있는 것
자바가 데이터베이스에 저장해야 하는 모든 메타 데이터 정보들을 영속성 컨테스트가 다 들고 있다
자바는 항상 영속성 컨테스트를 통해서 데이터 베이스를 저장 <-> 데이터베이스에 있는 데이터 영속성컨텍스트를 통해서 데이터가 자바에 전달
=> 자동으로 처리

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

DB는 객체저장이 불가능 하지만 자바는 객체저장이 가능! 자바에서 프로그래밍 할때는 객체를 저장하고 디비에 넣을때는 JPA가 자동으로 FOREIGN KEY를 집어 넣어준다

6. OOP의 관점에서 모델링 가능(상속, 콤포지션, 연관관계)

7. 방언 처리에 용이 Migration하기 좋음(유지보수에 좋음)

예) 오라클 -> mysql 바뀌게 되면 스프링에 있는 많은 코드들이 달라져야 하는데 추상화객체를 바라보고 JPA를 이용하면 뭘 이용하던간에 상관이 없다

8. 쉽지만 어려움

profile
develoops!er

0개의 댓글

관련 채용 정보