자바 언어를 위한 ORM 프레임워크
반복적인 SQL 처리
JPA는 매핑된 관계를 이용해서 SQL을 생성하고 실행 → 쉽게 예측 가능
네이티브 SQL이란 기능을 제공해주는데, 관계 매핑이 어렵거나 성능에 대한 이슈가 우려되는 경우 SQL을 직접 작성하여 사용 가능
JPA 는 SQL 은 데이터베이스 특징을 갖고 , JAVA는 객체지향인데 패러다임 불일치가 일어나게되고 ,
JPA는 그것을 해결해줌
부가 설명 객체지향은 캡슐화 , 상속, 다형성 등의 특성이 있는데 SQL은 그것을 실행할 수 없고,
그래서 패러다임 불일치가 일어나게 되고 그걸 해결해주는 것이 JPA
일반적으로 알고있는**애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)
**한다는 뜻
기술적으로는 앱의 객체를 RDB 테이블에 자동으로 영속화 해주는 것
SQL문이 아닌 Method를 통해 DB를 조작할 수 있어,
개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음.
Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어, 각종 객체에 대한 코드를 별도로 작성 , 가독성을 높임.
매핑하는 정보가 Class로 명시 되었기 때문에 ERD 의존도를 낮출 수 있고 유지보수 및 리팩토링에 유리.
ex)) MySQL DB를 사용하다가 PostgreSQL로 변환한다고 가정해보면, 새로 쿼리를 짜야하는 경우가 생김, 그러나 ORM을 사용한다면 쿼리를 수정할 필요가 없음.