Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- feign
- zipWith
- webflux
- try-catch
- closeable
- circuitbreaker
- 날짜쿼리
- try-catch-finally
- GC
- resilience4j
- jvm
- n+1
- springboot
- try-with-resources
- tcp
- 코딩테스트
- intelij
- Runtime data area
- wagon-ssh
- 람다표현식
- execution engine
- Hotspot VM
- 동작방식
- 4-way-handshake
- jetbrain
- java
- optional
- Class Loader
- Kotlin
- AutoCloseable
Archives
- Today
- Total
JuBin's personal study blog
JPA, Hibernate, Spring Data JPA의 차이점 본문
반응형
간단한 기본적인 개념을 알고 사용하자.
JPA
- JPA는 기술 명세이다. 자바 어플리케이션에서 RDBMS를 사용하는 방식을 정의해 놓은 인터페이스이다.
- 말그대로 JPA는 인터페이스이다. 라이브러리가 아니다. 단순 명세이기 때문에 구현이 없다.
- 클라이언트가 백엔드API명세를 보고 어떻게 호출해야 하는지를 정의해놓은 것과 같다.
Hibernate
- Hibernate는 JPA를 구현한 구현체이다. JPA명세를 보고 구현해 놓은것이다.
- Hibernate는 마치 자바의 interface를 구현한 class와 같다고 생각하면 된다.
- JPA를 사용하기 위해서는 반드시 Hibernate를 사용할 필요없이 JPA를 구현한 구현체들을 EclipseLink, DataNucleus 등과 같이 여러가지 구현체가 있다.
Spring Data JPA(Repository)
- Spring Data JPA는 JPA를 편하기 쓰기위해 Spring에서 제공해주는 모듈이다.
- JPA를 한단계 추상화한 Repository라는 인터페이스를 제공한다.
- JPA를 추상화했다는 말은, Spring Data JPA의 Repository의 구현부에서 JPA를 사용하고 있다는 뜻이다.
- 예를들면 Repository 인터페이스 구현체인 SimpleJpaRepository를 까보면 EntityManager를 사용하고 있다.
아래 그림은 위의 전체적인 내용을 그림으로 표현한것이다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] JVM 구조 정리 (0) | 2024.05.02 |
---|---|
[Java] try-with-resources란? (0) | 2024.04.28 |
[JAVA] String, StringBuilder, StringBuffer 차이점 (0) | 2021.04.14 |
[JAVA] Checked Exception, UnChecked Exception (0) | 2021.04.12 |
[JAVA] JVM 메모리 구조 정리 - 2 (0) | 2021.03.23 |