JPA(Java Persistence API)
- 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음
- 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크
- 자바 어플리케이션에서 RDB를 사용하는 방식을 정의한 인터페이스
- JPA를 구현한 대표적인 오픈소스 : Hibernate, openJPA
<사용하는 이유>
반복적인 CRUD SQL을 처리할 수 있음
네이티브 SQL 기능을 통해 매핑이 어렵거나 성능에 대한 이슈가 우려되는 경우 직접 SQL 작성 가능
즉, 개발자는 SQL을 크게 신경쓰지 않고 객체 중심의 개발에 더욱 집중할 수 있음
ORM (Object-Relational Mapping)
: 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑 한다는 뜻
기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것
<장점>
- SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음 (내부적으로는 쿼리를 생성하여 DB를 조작하지만 개발자가 이를 신경 쓰지 않아도됨)
- Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어, 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높임
- 객체지향적인 코드 작성이 가능. 오직 객체지향적 접근만 고려하면 되기 때문에 생산성 증가