Spring/JPA
JPA 란?
blockbuddy93
2023. 12. 2. 18:12
JPA는?
- Java Persistence API 로 자바 진영의 ORM 기술 표준입니다. 애플리케이션과 JDBC 사이에서 동작
ORM이란? (Object-Realtion Mapping)
객체와 관계형 DB를 매핑한다는 뜻으로, 객체와 데이터베이스간 패러다임 불일치 문제 해결하기 위해 만들어진 기술 표준이를 통해 객체는 객체대로 모델링, 데이터베이스는 관계형 데이버베이스 모델링이 가능하이버네이트 ORM 프레임워크를 기반으로 새로운 자바 ORM 표준이 만들어졌는데 이것이 JPA
JPA 이전
- 기존 자바 애플리케이션은 JDBC API를 이용하여 SQL을 직접 전달했음.
- 이렇게 되면 SQL 에 의존적인 코드를 만들어 유지보수가 불편함.
- 또한 JDBC API를 사용하기 위해 보일러 플레이팅 코드가 반복적으로 사용되서 번거로움.
JPA를 이용하면?
- JPA를 사용하면 불필요한 보일러 플레이팅 코드 사용없이 JPA 인터페이스를 사용하면됨.
- 또한 개발자가 직접 SQL을 작성하는것이 아니라 JPA가 제공하는 API를 사용할 수 있다는 이점이 있음.
- JPA는 ORM 으로 패러다임 불일치 문제를 해결해줌.
- 패러다임 불일치 문제 : RDB는 데이터베이스 중심으로 상속이나, 다형성 같은 객체 지향 개념이 존재하지 않기 때문에, 객체 지향 애플리케이션과 패러다임 불일치로 발생되는 문제
JPA를 사용해야되는 이유.
- 패러다임 불일치 문제 해결
- 생산성과 유지보수성 향상
- SQL 직접 적지 않고, 필드만 수정해도 알아서 쿼리가 수정되기 떄문.
- 영속성 컨텍스트로 인한 성능 이점
- 영속성 컨텍스트는 캐시, 쓰기 지연, 지연로딩 등의 기능이 있기 때문에 성능상에 이점이 있음.
JPA 사용법
- Spring Data JPA를 사용하여 JPA를 손쉽게 사용할 수 있다.
- JpaRepository 인터페이스를 정의하고 이름으로 쿼리 생성하는 쿼리메서드 기능을 통해 지루하게 반복되는 CRUD 쿼리를 구현하지 않아도 된다.