Overview
JPA (기술 표준명세)
- JPA는 특정 기능을 하는 라이브러리가 아니며, 인터페이스이다.
- 자바 어플리케이션에서 관계형 데이터베이스를 어떻게 사용해야 하는지 정의한 것.
Spring Data JPA
- JPA(Java Persistence API)에 대한 Repository support를 제공한다.
- JPA 데이터 소스에 액세스해야 하는 애플리케이션 개발을 용이하게 한다.
- 기존에 EntityManager를 사용하는 반면, Spring Data JPA는 JPA를 한단계 더 추상화 시킨 Repository 인터페이스를 제공
- 사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 적합한 쿼리를 날리는 구현체를 만들어 빈으로 등록
Hibernate
- JPA의 구현체
- JPA를 사용하기 위해 반드시 Hibernate를 사용해야 하는 것은 아님. 기타 다른 툴을 써도 됨
- Java 환경을 위한 Object/Relational Mapping 솔루션
- Object/Relational Mapping = Object model 을 Relational data model로(또는 그 반대로) 매핑
- Java 클래스를 데이터베이스 테이블로(Java 데이터 유형-> SQL 데이터 유형) 매핑
- 데이터 쿼리 및 검색 기능 제공
- 다양한(벤더별) SQL 코드를 일관화(통일)
- 목적 : SQL 및 JDBC에서의 데이터 처리에 소요(수작업)되는 개발 시간을 줄임
레퍼런스