[자바 ORM 표준 JPA 프로그래밍] 1.3 JPA란 무엇인가?
개발서적/자바 ORM 표준 JPA

[자바 ORM 표준 JPA 프로그래밍] 1.3 JPA란 무엇인가?

Reference. 자바 ORM 표준 JPA 프로그래밍

책 목차 및 이전 글

더보기

들어가기 전 JPA 특징, Q&A

1. JPA 소개

    1.1 SQL을 직접 다룰 때 발생하는 문제점

    1.2 패러다임의 불일치

    1.3 JPA란 무엇인가?

  • JPA(Java Persistence API) : 자바 진영의 ORM 표준 기술
  • ORM(Object-Relational Mapping) : 객체와 관계형 데이터베이스를 매핑하는 기술
    → 객체와 테이블 패러다임 불일치 문제를 개발자 대신 해결

<저장>

 

<조회>

 

1.3.1 JPA 소개

  • 엔터프라이즈 자바 빈즈(EJB) 안에 엔티티 빈이라는 ORM 기술이 포함
    복잡하고 기술 성숙도도 떨어지며 자바 엔터프라이즈(J2EE) 서버에서만 동작
    • 하이버네이트 오픈소스 ORM 프레임워크가 등장
      → EJB보다 가볍고 실용적이며 기술 성숙도도 높음, J2EE없이도 동작
      → EJB 3.0에서 하이버네이트 기반 새로운 자바 ORM 기술 표준을 만들었고 그것이 JPA
  • JPA는 자바 ORM 기술에 대한 API 표준 명세 (인터페이스)
    → JPA를 사용하려면 구현체 ORM 프레임워크를 선택해야 함
    → JPA 구현체는 하이버네이트, EclipseLink, DataNucleus가 있고 하이버네이트가 가장 대중적

 

1.3.2 왜 JPA를 사용해야 하는가?

  • 생산성
    - JDBC API를 사용하는 반복적인 일은 JPA가 대신 처리 (반복적 코드, CRUD)
    - DDL문(CREATE TABLE) 을 자동으로 생성해주는 기능도 포함 (데이터베이스 → 객체)
  • 유지보수
    - SQL에 의존적이면 엔티티 필드를 하나 추가하면 여러 수정(SQL, API)이 동반
      → JPA를 사용하면 SQL, API코드를 대신 처리해주므로 코드수가 줄어 듬
    - 패러다임 불일치 문제 해결을 통해 유연하고 좋은 도메인 모델을 편리하게 설계
  • 패러다임의 불일치 해결
  • 성능
    - JDBC API : 데이터베이스와 2번 통신
    - JPA : 데이터베이스와 1번 통신, 조회한 회원 객체를 재사용
String memberId = "helloId";
Member member1 = jpa.find(memberId);
Member member2 = jpa.find(memberId);
    • 데이터 접근 추상화와 벤더 독립성
      - 데이터 접근 계층을 사용하여, 특정 데이터베이스 기술에 종속되지 않음
  • 표준
    - 자바 ORM 기술 표준을 통해 다른 구현 기술로 손쉽게 변경이 가능