1.3 JPA란 무엇인가?
1.3.1 JPA 소개
1) JPA(Java Persistence API) : 자바진영의 ORM 기술에 대한 API 표준 명세
2) ORM (Object - Relational Mapping) : 객체와 관계형 데이터 베이스를 매핑 해주는 기술
-> 객체와 데이터베이스의 패러다임 불일치 문제를 해결해준다.
1.3.2 왜 JPA를 사용해야 하는가?
1) 생산성
- 자바 컬렉션에 객체를 저장하듯이 JPA에 저장할 객체를 전달하면 된다.
- 지루하고 반복적인 코드와 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다.
- DDL문 자동생성 기능
-> 데이터베이스 패러다임에서 객체 설계 중심 패러다임으로 역전 가능
2) 유지보수
- 기존에는 필드 하나만 추가해도 관련된 모든 JDBC API 코드 수정해야 한다.
- 반면에 JPA에서는 이러한 기능을 자동적으로 처리해주므로 유지 보수할 코드가 줄어든다.
3) 패러다임의 불일치 해결
- JPA는 상속, 연관관계, 객체 그래프 탐색 등의 패러다임 불일치 문제를 해결해 준다.
4) 성능
- JPA는 애플리케이션과 데이터베이스 사이에 있어 다양한 성능 최적화의 기회를 제공한다.
- 대표적으로 1차 캐시 기능이 있다.
5) 데이터 접근 추상화와 벤더 독립성
- 관계형 데이터 베이스는 같은 기능도 벤더마다 사용법이 다른 경우가 많다. (대표적으로 페이징 기능)
- JPA는 추상화된 데이터 접근 계층을 제공하여 애플리케이션이 특정 데이터베이스 기술에 종속되지 안도록 한다.
6) 표준
- JPA는 자바진영의 ORM 표준으로서 다른 구현기술로 손쉽게 변경할 수 있다.