이 글은 김영한님의 Inflearn 강의를 학습한 내용을 정리하였습니다.
글에 포함된 그림의 출처는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 영상과 자바 ORM 표준 JPA 프로그래밍입니다.
JPA와 ORM의 개념, JPA 동작 방식 그리고 JPA 사용 이유를 알아본다.
ORM이란
Object-Relational Mapping(객체 관계 매핑)의 약자로
객체는 객체대로 설계를 하고
관계형 데이터베이스는 관계형 데이터베이스대로 설계를 하면
중간에서 매핑해주는 프레임워크이다.참고로 대중적인 언어는 대부분 ORM 기술이 존재한다.
JPA는 JAVA 애플리케이션과 JDBC 사이에서 동작한다.
그림으로 표현하면 아래와 같다.
동작 과정은 다음과 같다.
위 저장과 조회에서 JPA의 역할이 적혀있다. 역할 중에서 가장 중요한 역할은 패러다임 불일치 해결이다.
JPA는 자바 ORM 기술에 대한 API 표준 명세이다. (쉽게 말해 인터페이스 모음이다.)
따라서, JPA를 사용하려면 구현체가 필요하고 다양한 구현체가 있다.
이 중 하이버네이트를 가장 많이 사용한다.
JPA를 사용하는 이유는 아래와 같이 정리할 수 있다.
위 항목을 하나씩 알아보자.
객체에 맞는 SQL(DDL, CRUD)을 생성해준다.
상속, 연관관계, 객체 그래프 탐색, 비교 등 패러다임의 불일치를 해결해준다.
애플리케이션과 데이터베이스 사이에 계층을 두어 버퍼링과 캐시 기능을 지원한다.
애플리케이션이 특정 데이터베이스 기술에 종속되지 않도록 한다.
특정 구현체에 종속되지 않도록 한다.