본문 바로가기
JPA

JPA에 대해..

by ppirae 2022. 5. 9.

현재 데이터베이스 세계의 헤게모니(어떤 집단을 주도할 수 있는 권력이나 지위)는 관계형 DB이다.

지금 시대는 객체를 관계형 DB에 관리한다.

 

하지만 이는 패러다임의 불일치를 부른다.

객체 vs 관계형 데이터베이스 이기 때문이다.

 

개발자는 SQL에 의존적인 개발을 하게되고,

지루하고 반복적인 CRUD작업을 진행하는 SQL 매퍼가 된다.

 

객체답게 모델링 할수록 매핑 작업만 늘어난다.

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

그 해답은 JPA 이다.


JPA ?

- JAVA Persistence API

- 자바 진영의 ORM 기술 표준

 

ORM ?

- Object-relational mapping (객체 관계 매핑)

- 객체는 객체대로 설계

- 관계형 데이터베이스는 관계형 데이터베이스대로 설게

- ORM 프레임워크가 중간에서 매핑

 

JPA를 왜 사용하야 하는가 ?

- SQL 중심적인 개발에서 객체 중심 개발로 전환 가능

- 생산성, 유지보수, 패러다임의 불일치 해결, 성능

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

- 표준

 

JPA는 동일한 트랜잭션에서 조회한 엔티티는 같음을 보장

 

JPA의 성능 최적화 기능

1. 1차 캐시와 동일성(identity) 보장

2. 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)

(트랜잭션이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위)

3. 지연 로딩(Lazy Loading)

 

ORM은 객체와 RDB 

두 기둥위에 있는 기술


인프런 김영한님의 JPA 기본편을 듣고 작성한 글입니다.

https://inf.run/87Mz

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

 

'JPA' 카테고리의 다른 글

JPA 엔티티 매핑  (0) 2022.05.11
HelloJPA와 영속성 관리 - 내부 동작 방식  (0) 2022.05.10
JPA 웹 계층 개발 - 홈 화면과 레이아웃  (0) 2022.04.22
JPA 주문 도메인 개발  (0) 2022.04.20
JPA 회원, 상품 도메인 개발  (0) 2022.04.19

댓글