JPA는 자바 애플리케이션에서 관계형 데이터베이스 관리를 위한 표준 명세입니다. JPA는 인터페이스를 제공하며, 실제 구현은 다양한 제공자가 수행합니다.
표준화
데이터베이스와의 상호 작용을 위한 공통 인터페이스를 정의하여, 다양한 구현체를 사용할 수 있도록 합니다.
애플리케이션 이식성
한 JPA 구현체에서 다른 구현체로 쉽게 전환할 수 있습니다.
POJO (Plain Old Java Object)
엔티티 클래스를 POJO로 정의하여 데이터베이스 테이블과 매핑합니다.
JPQL(Java Persistence Query Language)을 사용하여 객체 지향 쿼리를 작성합니다.
트랜잭션 관리: 트랜잭션 관리 기능을 제공합니다.
EntityManager
엔티티의 생명주기를 관리하는 인터페이스입니다.
EntityTransaction
트랜잭션을 제어하는 인터페이스입니다
Hibernate는 JPA의 구현체 중 하나이자, JPA가 등장하기 전부터 존재하던 ORM(Object-Relational Mapping) 프레임워크입니다. JPA 표준을 구현하는 동시에 자체적인 추가 기능도 제공합니다.
ORM 구현
자바 객체를 관계형 데이터베이스 테이블에 매핑하여 데이터베이스와 상호 작용을 간소화합니다.
JPA 구현체
JPA 인터페이스를 구현하여 JPA 표준을 따르는 애플리케이션을 지원합니다.
자동화된 매핑
자바 클래스와 데이터베이스 테이블 간의 매핑을 자동화합니다.
HQL (Hibernate Query Language)
Hibernate 자체 쿼리 언어를 제공합니다.
캐싱
1차 캐시와 2차 캐시를 제공하여 성능을 최적화합니다.
고급 기능
배치 처리, 커넥션 풀링, 고급 캐싱 전략 등 추가 기능을 제공합니다.
Session
Hibernate에서 엔티티의 생명주기를 관리하는 클래스입니다.
Transaction
트랜잭션을 제어하는 클래스입니다.
JPA
표준 명세로서 인터페이스와 추상화를 제공합니다. 직접적으로 동작하지 않으며, 구현체가 필요합니다.
Hibernate
JPA의 구현체 중 하나이자, 자체적인 기능을 갖춘 ORM 프레임워크입니다.
JPA
javax.persistence 패키지의 표준 인터페이스를 사용합니다.
Hibernate
org.hibernate 패키지의 구현 클래스와 추가 기능을 사용할 수 있습니다.
JPA
표준 기능만을 제공합니다.
Hibernate
캐싱, HQL, 유연한 매핑 전략 등 표준을 넘어서는 다양한 고급 기능을 제공합니다.
JPA
다양한 구현체가 존재합니다 (예: Hibernate, EclipseLink, OpenJPA 등).
Hibernate
JPA의 대표적인 구현체 중 하나로, 자체 ORM 기능도 제공합니다.
JPA는 자바 애플리케이션에서 데이터베이스와 상호 작용하기 위한 표준 API입니다.
Hibernate는 JPA의 구현체 중 하나이며, JPA 표준을 구현하는 동시에 자체적인 추가 기능을 제공합니다.
이 두 기술은 보완 관계에 있으며, 일반적으로 JPA를 사용하여 데이터베이스와 상호 작용하고, Hibernate를 구현체로 선택하여 다양한 고급 기능을 활용하는 방식으로 사용됩니다.
JPA 와 hibernate 에 대해서 모의면접 대비 찾아보았다. 집중해서 숙지해야겠다.