2주차 레퍼런스 제공
03장 Spring Data JPA 테스트 코드 작성하기
3.1 JPA에 대해서
패러다임의 불일치
-
JPA는 자바 표준 ORM기술(Object Relational Mapping)
관계형 데이터 베이스와 객체지향 프로그래밍 언어의 패러다임이 서로 다른데, 객체를 데이터베이스에 저장하려 하니 문제가 발생한다.
즉, JPA는 개발자와 RDB 중간에서 패러다임 일치를 시켜주기 위한 기술이다.
개발자는 객체지향적으로 프로그래밍하고, JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 수정 → 더이상 SQL에 종속적인 개발을 하지 않아도 된다.
JPA 소개
Spring Data JPA
- JPA는 인터페이스로 자바 표준 명세서로, 사용하려면 구현체가 필요하다.
- 구현체로는 Hibernate, Eclipse, Link가 있지만, 이를 좀 더 쉽게 사용하고자 추상화시킨 Spring Data JPA를 사용한다.
- JPA ← Hibernate ← Spring Data JPA
- Spring Data JPA 사용 이유
- 구현체 교체의 용이성 : Hibernate 이외의 다른 구현체로 쉽게 교체 가능
- 저장소 교체의 용이성 : 관계형 데이터베이스 이외의 다른 DB로 쉽게 교체 가능
- JPA의 장점
- CRUD 쿼리를 직접 작성할 필요X
- 객체 지향 프로그래밍 가능
- 속도 이슈X (여러 성능 이슈 해결책 존재)
+JPA에 속도 이슈가 있어???
🔎 즉시로딩과 지연로딩
JPA에서 연관된 엔티티를 조회할 때, (EAGER, LAZY) 옵션을 선택할 수 있다.
- EAGER(즉시로딩) : 해당 엔티티를 조회할 때, 연관된 모든 엔티티를 함께 조회