본문 바로가기

Spring 인강 정리/자바 ORM 표준 JPA 프로그래밍 - 기본편

JPA(Java Persistence API) 란?


1. JPA(Java Persistence API) 

  • 자바 진영의 ORM 기술 표준으로, 인터페이스의 모음
  • JPA 2.1 표준 명세를 구현한 3가지 구현체: Hibernate, EclipseLink, DataNucleus

 

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

  • 객체는 객체대로 독립적인 설계, 관계형 데이터베이스는 DB대로 독립적인 설계
  • ORM 프레임 워크가 중간에서 매핑

 

JPA는 애플리케이션과 JDBC 사이에서 동작하면서 DB의 특징을 몰라도 접근 가능하게끔 번역기의 역할을 한다.

자바 ORM 표준 JPA 프로그래밍 - 기본편, 김영한



2. JPA의 역할

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


: 기존의 JDBC를 이용한 전통적인 개발에서는 SQL문을 직접 작성해야하므로, 사용하는 DB가 바뀌거나 필드값이 바뀌면 전체 코드의 SQL문을 일일히 수정해줘야했다.
JPA는 특정 코드를 사용하여 직접 SQL문을 작성해주므로 SQL 중심 개발에서 벗어날 수 있게 되었다.


2. 생산성


: 코드가 간단해져서 빠르게 개발 가능하다.

jpa.persist(member) //Create
Member member=jpa.find(memberId) //Read
member.setName("변경할 이름") //Update
jpa.remove(member) //Delete


3. 유지보수


: 필드 변경 시, 추가만 하면 SQL은 JPA가 처리
-> SQL에 의존적이지 않으므로 유지보수 용이


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


: 자바의 객체 상속 관계를 Table 슈퍼타입-서브타입 관계로 해결

member.setTeam(team), member.getTeam();

과 같은 객체를 직접적으로 주입하는 듯한 코드를 통해 신뢰성 확보 및 패러다임 불일치 해결


5. 성능


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

- 지연로딩
- 쓰기 지연


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


7. 표준


3. JPA의 두 가지 핵심 기능


1. 영속성 컨텍스트
 2. 객체와 관계형 데이터베이스 매핑(ORM)

 

*영속성 컨텍스트
: 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성

 


4. JPA 구동방식

자바 ORM 표준 JPA 프로그래밍 - 기본편, 김영한

persistence.xml에서 설정정보를 조회한 후, EntityManagerFactory를 생성하여 여러개의 EntityManager로 객체를 관리한다.

- EntityManagerFactory는 애플리케이션 전체에 하나만 생성한다.

- Entity Managersms 쓰레드 간에 공유하지 않는다.(사용 후 버림)
- JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다.


해당 포스트는 김영한님의 자바 ORM 표준 JPA 프로그래밍을 듣고, 정리한 글입니다.
https://www.inflearn.com/course/ORM-JPA-Basic#

 

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

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

www.inflearn.com