본문 바로가기

Spring Data

JPA가 무엇인가요?

JPA는 Java Persistence API의 약자로, Java 어플리케이션에서 관계형 데이터베이스의 데이터를 쉽게 관리할 수 있게 해주는 프로그래밍 인터페이스입니다. 이것은 Java EE 표준의 일부이며, 자바 객체와 데이터베이스 테이블 간의 매핑을 담당합니다.

 

JPA는 다음과 같은 기능을 제공합니다.

  1. Object Relational Mapping : ORM이라고도 불리며, 객체와 테이블을 매핑해서, 코드 내에서 데이터베이스를 객체처럼 다룰 수 있습니다.
  2. Java Persistence Query Language : JPQL이라고도 불리며 SQL과 유사한 문법을 가진 쿼리 언어를 제공합니다.
  3. 캐시 시능 : 자주 사용되는 데이터를 캐시에 저장하여 성능을 향상시킬 수 있습니다.
    1. 1차 캐시 : EntityManger가 데이터를 조회하거나 변경할 때 1차 캐시에 저장되며, 이는 EntityManager 객체가 생성되면 자동으로 사용이 가능합니다.
    2. 2차 캐시 : 여러 트랜잭션 간에 공유가 가능한 캐시 기능이며, @Cacheable, @Cache(//strategy) 어노테이션을 통해 활성화 및 캐시 전략을 설정해주어야 합니다.
  4. 트랜잭션 관리 : 데이터베이스의 트랜잭션을 자동으로 혹은 명시적으로 관리할 수 있습니다.

마지막으로 JPA는 인터페이스를 제공하는 것이므로, 실제 구현은 Hibernate, EclipeLink, OpenJPA 같은 제공자가 담당합니다.

 

JPA라는 인터페이스를 통해 개발자는 쉽게 데이터베이스 작업을 더 쉽고 일관성 있게 구현할 수 있습니다.