JPA란
JPA란 Java Persistence API의 약자로 자바 진영의 표준 ORM 기술이다.
ORM이란 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스를 매핑하는 기술을 의미한다.
즉 JPA는 자바의 객체와 관계형 데이터베이스를 매핑하는 표준 기술이다.
ORM 프레임워크는 객체 / 관계형 데이터베이스 패러다임의 불일치를 개발자 대신 해결해준다.
ORM 프레임워크 상에서는 개발자가 어떤 객체를 저장할 때 직접 INSERT문을 작성할 필요가 없다.
객체를 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 프레임워크가 대신 적절한 INSERT문을 생성하여 데이터베이스에 저장해준다.
단순히 SQL만 생성해주는 수준에서부터 패러다임 불일치 문제를 전부 해결해주는 수준까지 다양한 ORM 프레임워크가 있으며
성숙한 ORM 프레임워크로 대표적으로 Hibernate가 있다.
다시 JPA를 이야기해보면 JPA는 ORM 기술 표준이라고 얘기했다.
즉 자바에서 ORM 기술을 이용하기 위한 표준 API 명세, 인터페이스의 집합이라 할 수 있다.
그리고 Hibernate, EclipseLink, DataNucleus 등은 이 JPA를 구현한 구현체들이다.
JPA의 특징
-
생산성
-
기본적으로 객체를 관계형데이터베이스에 저장 / 조회 등을 하는데 필요한 SQL을 개발자 대신 해줌으로써 지루하고 반복적인 CRUD용 SQL문을 개발자가 작성하지 않아도 된다. -
유지보수
-
SQL문을 직접 작성하지 않음으로써 객체의 변화 ( 속성 추가 등) 이 있을때 모든 SQL 을 직접 수정할 필요가 없다. 단지 해당 엔티티에 속성을 수정하면 된다. -
패러다임의 불일치 해결
-
상속, 연관관계, 객체 그래프 탐색, 비교 등 관계형 데이터베이스와의 패러다임 불일치로 어려워지는 문제들을 해결해준다. -
데이터 접근 추상화와 벤더 독립성
-
관계형 데이터베이스는 Oracle, MySQL등 그 벤더에 따라 같은 기능이더라도 작성해야할 SQL 문이 다른 경우가 많다.
JPA에서는 SQL을 직접작성하지 않으므로 개발자는 이러한 문제는 신경쓰지 않아도 되며 DB 벤더에 의존하지 않는 애플리케이션을 작성할 수 있다. -
표준
-
JPA라는 표준을 구현한 ORM 프레임워크들을 사용하기 때문에 표준을 구현한 다른 프레임워크로 손쉽게 변경할 수 있다.
자바 ORM 표준 JPA 프로그래밍을 공부하며 정리한 내용입니다.