JPA 소개

개발하는 도비·2023년 4월 22일

JPA

목록 보기
2/13
post-thumbnail

JPA란?

  • Java Persistence API
  • 자바 ORM 기술 표준

ORM이란?

  • Object-relational mapping(객체 관계 매핑)
  • 객체는 객체대로 설계
  • 관계형 데이터베이스는 관계형 데이터베이스대로 설계
    -> ORM 프레임워크가 중간에서 매핑문제를 해곃해준다.

JPA와 JDBC API 동작

  • 기존 : java -> JDBC API -> DB
  • JPA 적용 : java -> JPA -> JDBC API -> DB
    • entity object를 분석해 알아서 JDBC API를 만들어줌.
    • 반환시에도 entity object를 알아서 만들어줌.

JPA의 장점

  • 생산성(객체 중심으로 개발)
  • 유지보수
  • 패러다임의 불일치 해결
  • 성능
  • 데이터 접근 추상화와 벤더 독립성

생산성

  • sql -> 객체로 되어 쉽게 사용 가능
  • 저장 : jpa.persist(object)
  • 조회 : Object object = jpa.find(object)
  • 수정 : object.setName(“변경할 이름”)
  • 삭제 : jpa.remove(object)

유지보수

  • 기존 : 필드 변경시 모든 SQL 수정해야함
  • JPA : 객체의 필드만 추가하면 됨

패러다임 불일치 해결

  • JPA가 객체를 반환해 주며, 상속, 연관관계, 객체그래프 탐색, 비교가 쉽게 해결된다.

성능

  • 1차 캐시와 동일성(identity) 보장
    • 같은 트랜잭션 안에서는 같은 entity를 반환 -> 같은 조회를 요청할 경우 첫번째는 sql을 실행하지만 두 번째부터는 JPA의 메모리에서 가져옴.
  • 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
    • insert시 commit 순간에 데이터베이스에 한번에 전송
  • 지연 로딩(Lazy Loading)
    • 객체가 실제 사용될 때 로딩
    • 즉시 로딩도 지원함.

참조

  • 인프런 : 자바 ORM 표준 JPA 프로그래밍 - 기본편
  • 링크
profile
도비의 양말을 찾아서

0개의 댓글