JPA 란 ?

Yewon Choi·2020년 6월 16일
0

JPA 프로그래밍

목록 보기
1/4
post-thumbnail

📌 등장 배경

지금 시대는 객체를 관계형 DB에 저장한다.
SQL에 의존적인 개발을 피하기 어렵다.

객체를 자바 컬렉션에 저장 하듯이 DB에 저장할 수 없을까?

객체와 관계형 데이터베이스패러다임은 불일치한다.



📌 객체 vs 관계형 데이터베이스

1. 상속

🐥 관계형DB에는 상속 개념이 없다.

2. 연관관계

3. 데이터 타입

4. 데이터 식별 방법



📌 JPA

JPA Java Persistence API

EJB (자바 표준) -> 하이버네이트 (오픈 소스) -> JPA(자바 표준)

JPA는 표준명세. 즉, 인터페이스의 모음이다.
실제 구현은 hibernate가 한다.

데이터베이스 데이터 <—매핑—> Object 필드
객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.



📌 JPA 동작

(🐥 Mybatis 차이점: JPA는 쿼리도 다 짜준다. 반면, Mybatis는 쿼리는 개발자가 직접 작성해야한다.)



📌 JPA 장점

왜 JPA를 사용해야 할까?

1. SQL 중심적인 개발에서 객체 중심으로 개발

2. 생산성

3. 유지보수

4. 패러다임의 불일치 해결

  • JPA와 상속
  • JPA와 연관관계
  • JPA와 객체 그래프 탐색
  • JPA와 비교하기

5. 성능

  • 최적화 기능
    • 1차 캐시와 동일성 보장
    • 트랜잭션을 지원하는 쓰기 지연
    • 지연 로딩

6. 데이터 접근 추상화와 벤더 독립성

7. 표준



📌 ORM

ORM은 객체와 RDB 두 기둥 위에 있는 기술이다.
Persistence Framework는 SQL Mapper와 ORM으로 나눌 수 있다.

  • ORM : 데이터베이스 객체를 자바 객체로 매핑함으로써 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해준다.
  • SQL Mapper : SQL을 명시해줘야 한다.


출처
[토크ON세미나] JPA 프로그래밍 기본기 다지기 1강 - JPA 소개

profile
https://github.com/devAon 찰나의 개발흔적을 남기는 개발블로그 입니다 🐥 https://aonee.tistory.com 에서 Velog로 블로그 이전 작업중입니다 ! 🎶

0개의 댓글