JPA는 Java Persistence API의 약자로, Java 어플리케이션에서 관계형 데이터베이스의 데이터를 쉽게 관리할 수 있게 해주는 프로그래밍 인터페이스입니다. 이것은 Java EE 표준의 일부이며, 자바 객체와 데이터베이스 테이블 간의 매핑을 담당합니다.
JPA는 다음과 같은 기능을 제공합니다.
- Object Relational Mapping : ORM이라고도 불리며, 객체와 테이블을 매핑해서, 코드 내에서 데이터베이스를 객체처럼 다룰 수 있습니다.
- Java Persistence Query Language : JPQL이라고도 불리며 SQL과 유사한 문법을 가진 쿼리 언어를 제공합니다.
- 캐시 시능 : 자주 사용되는 데이터를 캐시에 저장하여 성능을 향상시킬 수 있습니다.
- 1차 캐시 : EntityManger가 데이터를 조회하거나 변경할 때 1차 캐시에 저장되며, 이는 EntityManager 객체가 생성되면 자동으로 사용이 가능합니다.
- 2차 캐시 : 여러 트랜잭션 간에 공유가 가능한 캐시 기능이며, @Cacheable, @Cache(//strategy) 어노테이션을 통해 활성화 및 캐시 전략을 설정해주어야 합니다.
- 트랜잭션 관리 : 데이터베이스의 트랜잭션을 자동으로 혹은 명시적으로 관리할 수 있습니다.
마지막으로 JPA는 인터페이스를 제공하는 것이므로, 실제 구현은 Hibernate, EclipeLink, OpenJPA 같은 제공자가 담당합니다.
JPA라는 인터페이스를 통해 개발자는 쉽게 데이터베이스 작업을 더 쉽고 일관성 있게 구현할 수 있습니다.
'Spring Data' 카테고리의 다른 글
JPA와 Hibernate의 차이점은 무엇인가요? (0) | 2023.09.02 |
---|---|
ORM이란 무엇인가요? (0) | 2023.09.02 |
Kafka Streams로 실시간 데이터 분석, Kafka Connect로 데이터 통합 (1) | 2023.08.08 |
Kafka 아키텍처와 ZooKeeper의 역할: 고가용성 분산 시스템의 설계와 관리 (0) | 2023.08.07 |
Apache Kafka: 실시간 데이터 스트리밍을 위한 기본 개념과 Producer-Consumer 구조 (2) | 2023.08.07 |