JPA 소개 <JPA - 1>

초콜렛빵·2022년 8월 10일
0

JPA

목록 보기
1/1
post-thumbnail

JPA란?

  • Java Persistensce API의 줄임말로 자바의 ORM 기술 표준

ORM 이란?

  • Object-Relational Mapping(객체 관계 매핑) 의 줄임말
  • 객체는 객체대로, RDBMS는 RDBMS대로 설계
  • ORM 프레임워크가 중간에 매핑

동작 방식

  • JPA는 애플리케이션과 JDBC 사이에서 동작
  • JPA 내부에서 JDBC API를 사용해 SQL을 호출해 DB와 통신
  • 개발자는 ORM 프레임워크에 맞춰 적절한 쿼리문을 생성해 데이터 관리
  • 저장시, 저장하고자 하는 객체를 전달하면 JPA에서 분석과 Insert 쿼리 생성 등을 진행하여 패러다임 불일치를 해결
  • 조회도 비슷한 형태

JPA 구현체

  • JPA는 인터페이스의 모음이며, 이를 구현해야 사용 가능
  • 대표 3가지 구현체로 하이버네이트, EclipseLink, DataNucleus

사용이유

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

  • 저장: jpa.persist()
  • 조회: jpa.find()
  • 수정: member.setNAme("변경이름")
  • 삭제: jpa.remove()
  • 위의 내용 처럼 JPA를 사용하는 것은 객체 형태로 구현 가능하도록 지원

유지보수

  • 기존 필드 변경시에는 모든 SQL 수정 필요
  • JPA에서는 필드만 추가, SQL은 JPA가 처리

패러다임의 불일치 해결

  • 상속/ 연관관계/ 객체 그래프 탐색(지연 로딩) 등을 JPA에서 처리
  • 비교 기능도 제공(Collection 비교와 동일)

성능 최적화 기능

  • 1차 캐시와 동일성(Identity) 보장
    • 같은 트랜잭션 안에서는 같은 엔티티 반환
  • 트랜잭션 지원하는 쓰기 지연(transactional write-behind)
    • 트랜잭션 커밋 시까지 SQL 모음
  • 지연로딩(Lazy Loading)
    • 객체가 실제 사용될 때 로딩

참조

profile
차근차근 기록하고 배우는 개발자

0개의 댓글