JPA는 자바 ORM(Object Relational Mapping) 기술 표준으로, 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 역할
: 객체와 관계형 데이터베이스 간의 데이터를 변환하고 연결해주는 기술
- 관계형 데이터베이스는 테이블로 이루어져 있으며, 객체 지향 프로그래밍에서는 객체를 사용하여 데이터를 처리합니다. 이러한 차이로 인해 객체와 관계형 데이터베이스 간의 데이터 변환이 필요해졌고, 이를 위해 ORM 기술이 개발되었습니다.
: JPA를 사용하면 SQL을 직접 작성하지 않고 객체 지향적인 방식으로 데이터베이스를 다룰 수 있습니다. 이로 인해 개발자가 SQL을 작성하는 시간을 줄일 수 있으며, 더 나은 생산성을 얻을 수 있습니다.
:PA는 객체 지향적인 방식으로 데이터베이스를 다루기 때문에, 데이터베이스 스키마 변경 시 코드를 변경하지 않고도 대처할 수 있습니다.
: JPA는 인터페이스로 구현되어 있기 때문에 구현체를 교체하여 다른 데이터베이스를 사용할 수 있습니다. 또한, JPA는 엔티티를 추상화하여 데이터베이스와의 상호작용을 더욱 쉽게 만듭니다.
: JPA는 JPQL(Java Persistence Query Language)이라는 객체 지향적인 쿼리 언어를 제공합니다. 이를 사용하면 SQL보다 더 객체 지향적인 방식으로 쿼리를 작성할 수 있습니다.
: JPA는 높은 추상화와 유연성으로 인해 성능 문제가 발생할 수 있습니다. JPA를 사용하면 객체를 데이터베이스에 저장하거나 불러오는 데 많은 오버헤드가 발생하기 때문입니다. 또한, 복잡한 쿼리를 작성할 때 SQL보다 느리게 동작할 수 있습니다.
: JPA를 사용하려면 ORM의 개념과 JPA의 API 등을 숙지해야 하기 때문에 학습 곡선이 높을 수 있습니다. 또한, JPA를 사용하다보면 SQL과의 차이점 등의 문제점을 다루기 위해 추가적인 공부가 필요할 수 있습니다.