JPA (Java Persistence API)
JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다
즉, 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다
JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다
JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때
개발자가 직접 SQL을 작성하지 않아도 된다
JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고 객체를 자동으로 Mapping 해준다
JPA는 내부적으로 JDBC API를 활용하는데 개발자가 직접 JDBC API를 활용하면 패러다임 불일치
SQL 의존성 등으로 인해 효율성이 떨어진다
이때 JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서
생산성을 크게 높인다
ORM (Object-Relational Mapping)
class와 RDB (Relational DataBase)의 테이블을 매핑(연결) 한다는 뜻이며
어플리케이션의 캑체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면된다
쉽게 말해 ORM 프레임워크를 사용하면 객체를 마치 자바 컬렉션에 저장하듯 저장하며
이에 대해 ORM 프레임워크가 적절한 SQL을 생성해서 DB에 객체를 저장해준다
Hibernate
자바 진영의 다양한 ORM 프레임워크 중 가장 많이 사용되는 성숙한 프레임워크이다
이러한 Hibernate 기반으로 만들어진 ORM 기술 표준이 JPA다
즉 JPA라는 ORM 기술 표준을 구현한 것이 Hibernate이므로
JPA를 사용하려면 Hibernate를 사용하면 된다
'Java' 카테고리의 다른 글
[Java] 오토박싱, 언박싱 (0) | 2022.10.06 |
---|---|
[Java] 다형성, 정적바인딩, 동적바인딩 (0) | 2022.10.06 |
[Java] 객체지향 프로그래밍(OOP), 4가지 특징, 5가지 원칙(SOLID) (0) | 2022.10.02 |
[Java] == 와 equals 차이 심화학습 및 예제 테스트 (2) | 2022.10.02 |
[Java] 추상클래스, 상속, 부모필드쓰기 예제를 통한 실험 (0) | 2022.10.01 |