[자바 ORM 표준 JPA 프로그래밍] JPA란?

hyeseungS·2022년 3월 22일
1

동아리에서 스프링 스터디를 시작하게 되었는데 ‘자바 ORM 표준 JPA 프로그래밍’ 을 10장까지 함께 읽고 각자 분량 발표하기가 목표다!

1.3 JPA란?

  • JPA (Java Persistence API)는 자바 진영의 ORM 기술 표준
  • 애플리케이션과 JDBC 사이에서 동작

    ORM 이란?

    ORM(Object Relational Mapping)은 객체와 관계형 데이터 베이스를 매핑.
    이를 통해 패러다임의 불일치 문제를 개발자 대신 해결.
    어느정도 성숙한 객체지향 언어에는 대부분 ORM 프레임워크들이 있음.
    자바 진영에도 다양한 ORM 프레임워크들이 있는데 그중 하이버네이트가 가장 많이 사용됨.

동작 방식


1. Java 애플리케이션이 JPA API를 호출하면
2. JPA는 JDBC API를 호출
3. JDBC는 SQL을 생성/실행하고
4. DB에서 결과를 객체로 반환

저장에서 JPA의 역할

jpa.persist(member); // JPA를 사용해 객체를 저장하는 코드

조회에서 JPA의 역할

Member member = jpa.find(memberId); // JPA를 사용해 객체를 조회하는 코드

JPA 구현체 종류

  • JPA는 자바 ORM 기술에 대한 API 표준 명세
    -> 인터페이스 모음
  • 따라서, JPA를 사용하기 위해 구현한 ORM 프레임워크가 필요하고 다양한 구현체가 있음.

    하이버네이트(hibernate.org)를 가장 많이 사용

JPA 사용 이유

생산성 & 유지보수

  • JPA가 반복 코드, 객체에 맞는 SQL(DDL, CRUD)를 생성해줌.

패러다임 불일치 해결

  • JPA가 1.2절에 나온 상속, 연관관계, 객체 그래프 탐색, 비교하기 등 패러다임 불일치를 해결해줌.

성능

  • JPA는 애플리케이션과 데이터베이스 사이에 계층을 두어 버퍼링과 캐시기능 지원.
  • 참고로, 하이버네이트는 SQL 힌트를 넣을 수 있음.

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

  • JPA는 추상화된 데이터 접근 계층을 제공하여 애플리케이션이 특정 데이터베이스 기술에 종속되지 않도록 함.

표준

  • 특정 구현체에 종속되지 않도록 함.

출처 : 자바 ORM 표준 JPA 프로그래밍 책


자바 ORM 표준 JPA 프로그래밍 - 플러시, 준영속


profile
Studying!!

0개의 댓글