기록과 정리

JPA(Java Persistence API)란? 본문

IT/JPA

JPA(Java Persistence API)란?

zepetto 2021. 2. 8. 18:05

이 글은 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고하였습니다.

www.inflearn.com/course/ORM-JPA-Basic

 

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

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

www.inflearn.com

 

JPA 란?

JPA ( Java Persistence API ) 의 약자로 , 자바 진영의 ORM 기술 표준을 말한다.

 

ORM ?

Object - Relational Mapping ( 객체 관계 매칭 )

객체는 객체대로 , RDB는 RDB 대로 설계 후 ORM이 객체와 DB를 매핑해준다. 

 

JPA의 탄생

기존 자바 진영에서는 EJB(엔티티 빈)라는 ORM 기술이 있었지만 사용하기 어렵고, 속도 또한 느렸기 때문에 오픈 소스로 Hibernate가 탄생하게 된다. 자바 진영에서 Hibernate를 개발한 개발자를 영입함으로써 JPA라는 ORM 을 만들게 된다. 

JPA를 설명해주는 단면

JPA를 왜 사용하는가?

1. 생산성

CRUD 라 하면 보통 MyBatis에서 쿼리를 작성한다. 가령 , 회원을 다루는 Member 라는 객체에 age라는 컬럼이 추가 생성된다면 여태 만들어 놓은 쿼리에 age라는 컬럼을 기입을 해놓아야한다.

 

이러한 쿼리가 10개일지 100개일지 모르는 일이다.  하지만 JPA는 이러한 분배를 알아서 해준다. 

 

마치 자바 컬렉션 처럼

 

저장 jpa.persist(member

조회 jpa.find(memberId)

삭제 jpa.remove(member)

수정 member.setName("변경이름") 

 

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

RDB와 객체 간에 맞지않은 개념을 이어주는 개념으로 사용. 

 

가장 큰 이유는 위에 두가지라 생각하며 그외에도 생산성, 유지보수, 성능, 패러다임의 불일치 해결 등이 있습니다.