[Java] JPA

이광훈·2023년 6월 26일
0

✅ JPA (Java Persistence API)

  • 자바에서 관계형 데이터베이스를 조작하기 위한 표준 인터페이스
  • 객체 지향 프로그래밍과 관계형 데이터베이스 간의 불일치를 해결하기 위한 기술
  • 개발자들이 간편하게 데이터베이스를 조작하고 객체를 영구적으로 저장하고 검색할 수 있음
  • Spring Data JPA 라이브러리 → Query Method
  • JPA는 EntityManager를 사용, Spring Data JPA는 JpaRepository를 사용
  • 메소드의 이름을 우리가 조회하고 싶은 조건을 붙여서 생성

🌐 ORM (Object Relational Mapping)

  • 객체지향적 관점에서 객체를 사용하여 관계형 데이터베이스를 사용하는 기술
  • 객체를 테이블 및 레코드에 매핑

🔸 장단점

  • 생산성 증가, 중복 감소, 데이터베이스 의존성 감소
  • 실제 SQL을 작성하지 않고 위임하기 때문에 성능에 영향이 있음

🌐 Hibernate

  • JPA 명세를 바탕으로 작동하는 ORM 프레임워크
  • 자바 애플리케이션에서 데이터베이스와 상호 작용을 간편하게 만들어주는 강력한 도구
  • JPA로 표현된 객체를 실제 데이터베이스에 적용 및 사용
  • 실제로 JPA를 동작시키는 것 → Hibernate

📌 주요 기능

  • 객체-관계 매핑: 객체와 관계형 데이터베이스 테이블 간의 매핑을 자동으로 처리
  • 데이터베이스 조회와 조작: 데이터베이스에 저장하고 검색할 수 있는 간편한 API를 제공
  • 트랜잭션 관리: ACID* 트랜잭션을 지원하며 데이터베이스 작업을 일관된 상태로 유지
    (*ACID: 원자성, 일관성, 고립성, 지속성)
  • 캐싱: 캐시 매커니즘을 제공하여 반복적인 데이터베이스 조회 작업을 최적화함
  • 지연 로딩: 지연 로딩을 지원하여 필요한 시점에 데이터를 로드할 수 있음
profile
웃으며 일할 때, 시너지가 배가 된다고 믿는 개발자

0개의 댓글