이미지 출처: https://dev-aiden.com/jpa/what-is-jpa/
자바 프로그램에서 데이터베이스를 사용하는 방식을 정의한 인터페이스입니다.
자바 ORM 기술 표준으로, 기존에는 자바 프로그램과 데이터베이스를 연결하기 위해 JDBC API를 직접 이용했었는데, 현재는 JPA가 제공해주는 인터페이스를 통해 편리하게 데이터베이스와 연결이 가능합니다.
JPA는 표준 인터페이스이기 떄문에 특정 기능을 하지는 않습니다.
그리고 이 인터페이스를 구현한 구현체가 여러 종류가 있는데 그 중 대표적인 것이 하이버네이트(Hibernate)입니다.
자바 프로그래밍 언어와 다양한 데이터베이스가 통신하여 작업을 수행하기 위한 표준입니다.
여러 종류의 데이터베이스가 존재하는 상황에서, 데이터베이스가 교체되더라도 코드를 바꾸지 않고 계속 사용할 수 없을까? 하는 생각에서 나오게 된 것이 JDBC입니다.
DBMS 회사들에서는 JDBC 드라이버라고 하는 JDBC 인터페이스를 구현하여 제공합니다.
이 JDBC 드라이버는 DBMS 회사들이 자신들의 데이터베이스 시스템에 접근할 수 있도록 표준 JDBC 인터페이스에 명시된 메소드들을 구현한 것입니다.
즉, JDBC API를 사용하면 데이터베이스가 변경되더라도 프로그램의 코드를 변경하지 않고 그대로 어떤 종류의 DBMS에도 접근이 가능하게 됩니다.
또한 JDBC API만 알면 특정 데이터베이스의 정확한 사용법을 몰라도 데이터베이스 조작이 가능하게 됩니다.