# JPA를 사용하면 좋은 점이 무엇인가요?

* ***JPA(Java Persistence API)***
  * Java 진영의 ORM 표준 프레임워크

**생산성**

* JPA를 사용하면 자바 컬렉션에 객체를 저장하듯이 사용하여 지루하고 반복적인 일은 JPA가 대신 처리해준다.
* 따라서 지루하고 반복적인 코드와 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다.

**유지보수**

* SQL을 직접 다루면 엔티티에 필드를 하나만 추가해도 관련된 등록, 수정, 조회 SQL과 결과를 매핑하기 위한 JDBC API 코드를 모두 변경해야 한다.
* JPA를 사용하면 이런 과정을 JPA가 대신 처리해주므로 수정해야 할 코드가 줄어, 유지보수해야 하는 코드 수가 줄어든다.
* JPA가 **패러다임의 불일치 문제**를 해결해주므로 객체지향 언어가 가진 장점들을 활용해서 유연하고 유지보수하기 좋은 도메인 모델을 편리하게 설계할 수 있다.

**패러다임의 불일치 해결**

* JPA는 상속, 연관관계, 객체 그래프 탐색, 비교하기와 같은 패러다임의 불일치 문제를 해결해준다.

**데이터 접근 추상화**

* JPA는 애플리케이션과 데이터베이스 사이에 추상화된 데이터 접근 계층을 제공해서 애플리케이션이 특정 데이터베이스 기술에 종속되지 않도록 한다.
* 데이터베이스를 변경하면 JPA에게 다른 데이터베이스를 사용한다고 알려주기만 하면 된다.

**표준**

* JPA는 자바 진영의 ORM 기술 표준으로, 표준을 사용하면 다른 구현 기술로 쉽게 변경 가능하다.
