728x90
Spring Data JPA
Spring Data JPA는 Spring Framework에서 제공하는 모듈 중 하나로, 개발자가 JPA를 좀 더 쉽고 편하게 사용 할 수 있도록 도와준다.
특징을 잠깐 살펴보자면,
- Hibernate와 같은 구현체들을 좀 더 쉽게 사용할 수 있도록 추상화한 것.
- JPA를 한 단계 추상화시킨 Repository 인터페이스를 제공.
- 개발자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록.
- Hibernate와 Spring Data JPA를 사용하는 데에는 사실 큰 차이가 없지만 Spring Data JPA가 권장되는 이유는 크게 두 가지.
- 구현체 교체의 용이성
- 자바의 Redis 클라이언트가 Jdis에서 Lettuce로 대세가 넘어갈 때 Spring Data Redis를 사용하면 아주 쉽게 교체가 가능.
- 저장소 교체의의 용이성
- Spring Data JPA, Spring Data MongoDB, Spring Data Redis등 Spring Data의 하위 프로젝트들은 findAll(), save()등을 동일한 인터페이스로 가지고 있기 때문에 저장소를 교체해도 기본적인 기능이 변하지 않음.
- 구현체 교체의 용이성
JPA
JPA는 Java Persistence API의 약자이며, Java ORM 기술에 대한 표준 명세로, Java에서 제공하는 API이다. 또한 Java 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.
- JPA는 인터페이스이다! 특정 기능을 하는 라이브러리가 아니다. 어떻게 관계형 데이터베이스를 사용해야 하는지를 정의한 단순한 명세이다.
- 스프링 PSA에 의해서(POJO를 사용하면서 특정 기술을 사용하기 위해서) 표준 인터페이스를 정해두었는데, 그 중 ORM을 사용하기 위해 만든 인터페이스가 JPA이다.
- 기존 EJB에서 제공되던 Entity Bean을 대체하는 기술이다.
Hibernate
Hibernate는 JPA 구현체의 한 종류이다.
- JPA는 관계형 데이터베이스와 자바 객체를 매핑하기 위한 인터페이스(API)를 제공하고 JPA 구현체(Hibernate)는 인터페이스를 구현한 것.
- JPA와 Hibernate는 마치 자바의 interface와 해당 interface를 구현한 class와 같은 관계.
- Hibernate 외에도 EclipseLink, DataNucleus, OpenJPA, TopLink Essentials 등이 있다.
출처 :
https://velog.io/@hyeinisfree/JPA-JPA-Hibernate-Spring-Data-JPA%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90
728x90
'배우고 익혀 널리 알리자' 카테고리의 다른 글
[Server]세션 클러스터링이란? Session Clustering (0) | 2022.04.14 |
---|---|
[Server] Cache(캐시) 란? (0) | 2022.04.13 |
함수형 프로그래밍의 목적 (0) | 2022.04.09 |
Maven과 Gradle 차이 (0) | 2022.01.23 |
[puTTY] 쁘띠 푸띠 글자 크기 및 글꼴 색상 변경 (0) | 2021.12.30 |