■ JPA (JAVA PERSISTENCE API) 란?
자바 ORM (oriented-releational Mapping) 기술에 대한 API 표쥰 명세.
쉽게 말해 인터페이스의 집합체.
JPA를 이용하기 위해서는 이를 구현 해 줄 수 있는 프레임워크를 사용해야 한다.
Hibernate, EclipseLink, DataNucleus 가 주로 쓰이는 프레임워크이고
가장 대중적인 프레임워크는 Hibernate (하이버네이트).
■ JPA를 왜 사용해야 하는가?
1. 생산성 향상
반복적인 코드와 기본 CRUD 용 쿼리를 작성하는 수고를 덜어준다.
2. 유지보수 편의성
필드 추가, 삭제 등의 수정사항을 개발자가 직접 유지보수를 위해 코딩해야 했던 노력이 줄어든다. (JPA가 대신 처리함)
3. 페러다임의 불일치 해결
JAVA 의 객체기반 - DB의 관계형 데이터 기반
코드가 디테일 해 질수록 두 페러다임의 불일치가 발생하는데 JPA가 중간에서 해결 가능.
4. 성능 향상
JPA는 어플리케이션과 DB 사이에서 동작하므로 이렇게 계층이 하나 더 있으면 최적화를 시도해 볼 수 있는 것이 많다.
5. 데이터 접근 추상화와 벤더 독립성
JPA는 어플리케이션과 DB 사이에 추상화된 데이터 접근 계층을 제공하여 어플리케이션이 특정 DB 기술에 종속되지 않도록 한다. (페이징 처리의 경우 각 DB마다 사용법이 다르지만, JPA를 사용하면 어떤 DB를 사용하는지 알려주기만 하면 된다)
6. 표준 기술
JAVA의 ORM 표준 기술이기 떄문에 다른 구현기술로 손쉽게 변경 가능하다.
* 개발자는 엔티티 객체를 중심으로 개발하고 데이터베이스에 대한 처리는 JPA 에게 맡겨야 한다.