
JPA는 Java Persistence(영속성) API이다. 여기서 Persistence란, "영속성"을 의미하며 데이터가 사라지지 않고 오랫동안 지속됨을 의미한다.
즉, 자바 프로그램을 할 때 영구적으로 데이터를 저장하기 위해 필요한 인터페이스를 제공해 주는 것이다.
-JPA는 애플리케이션과 JDBC 사이에서 동작한다.

-JPA는 JDBC API를 사용하여 데이터베이스와 데이터를 주고받는다.
기존의 개발 방식은 SQL 중심적인 개발이었다.
JPA를 사용하면 객체 중심으로 애플리케이션 개발이 가능하다.
생산성(CRUD)
JPA를 사용하면 기본적으로 생산성이 높아진다. JDBC 방식의 경우 SQL 쿼리문을 직접 작성해야 데이터베이스에 접근이 가능하다.
하지만, JPA는 쿼리문을 별도로 작성할 필요가 없다. 다음과 같이 간단한 메서드를 통해 CRUD가 가능하다.
유지보수
기존에는 엔티티 클래스의 필드가 변경되면 모든 SQL을 수정해야 했다.
JPA에서는 쿼리를 직접 작성하지 않기 때문에 필드가 변경되더라고 매핑 정보만 잘 연결하면 SQL문은 자동으로 작성된다.
패러다임의 불일치 문제 해결
상속, 연관관계, 객체 그래프 탐색, 비교 등의 설계 차이로 인해 발생하는 패러다임의 불일치 문제를 해결한다.
이와 같이 객체와 데이터베이스는 서로 다른 목적을 가지고 설계되었기 때문에 매핑하는 데 있어 여러 문제가 발생한다. 하지만 JPA를 사용하면 이러한 문제를 모두 해결할 수 있다:)