JPA란?
JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준이다.
애플리케이션과 JDBC 사이에서 동작한다.
ORM이란?
ORM(Object-Relational Mapping)은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다.
ORM 동작 방식
ORM 프레임워크를 사용하면 객체를 데이터베이스에 저장할 때 INSERT SQL을 직접 작성하는 것이 아니라 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 된다. 그러면 ORM 프레임워크가 적절한 INSERT SQL을 생성해서 데이터베이스에 객체를 저장해준다.
ORM의 장점
- SQL을 개발자 대신 생성해서 데이터베이스에 전달
- 다양한 패러다임의 불일치 문제들도 해결
- 객체 측면에서는 정교한 객체 모델링 가능
- 관계형 데이터베이스는 데이터베이스에 맞도록 모델링
- 개발자는 데이터 중심인 관계형 데이터베이스를 사용해도 객체지향 애플리케이션 개발에 집중
- Java의 주요 ORM 프레임워크는 하이버네이트 프레임워크
JPA
- 자바 ORM 기술에 대한 API 표준 명세
- 인터페이스를 모아둔 것
- JPA를 사용하려면 ORM 프레임워크 선택 - 하이버네이트를 주로 선택
- 특정 구현 기술에 대한 의존도를 줄임
JPA의 장점
- 생산성 : 반복적인 일을 JPA가 대신 처리
- DDL 문 자동 생성 : 객체 설계 중심
- 유지보수 : 엔티티의 변경이 일어나면 그와 관련된 SQL과 결과를 매핑하기 위한 JDBC API 코드를 JPA가 대신 처리
- 유연하고 유지보수 하기 좋은 도메인 모델 설계
- 패러다임의 불일치 해결
- 성능 : 애플리케이션과 데이터베이스 사이에서 다양한 성능 최적화 기회를 제공
- 데이터 접근 추상화와 벤더 독립성 : 특정 데이터베이스 기술에 종속되지 않는다.
- 표준 : 자바 진영의 ORM 기술 표준
출 처 : 자바 ORM 표준 JPA 프로그래밍 - 김영한