728x90
반응형

Spring Boot로 프로젝트를 진행하면서

JPA를 활용해 코드를 작성하다보면 코드가 간결해져서

효율적으로 시간 분배하며 프로젝트를 진행할 수 있었다.

가끔은 하드코딩으로 처음세팅과 DB 연결부터

쿼리 작성까지했던 MyBatis가 조금은 그립다는 생각을 했다.

JPA를 다룰줄은 아는데, 내가 알고 있는 개념이 모호한 것 같아서

정확한 이해도를 잡기 위해 JPA 연관 기능들의 개념과 차이점을 정리해본다.

 

JPA, Spring Data JPA, Hibernate

- 모두 자바에서 관계형 데이터베이스와 상호 작용하기 위한 기술이지만 서로 다른 개념과 역할을 갖고 있다.

 


JPA (Java Persistence API)
- Java에서 데이터베이스와 상호 작용하는 자바 표준 API
- 데이터베이스 테이블과 자바 객체 간의 매핑을 처리하며, 객체 지향 프로그래밍과 관계형 데이터베이스 간의 매핑을 담당
- 인터페이스와 추상 클래스로 이루어져 있으며, 구현체는 제공하지 않음.
  대표적인 JPA 구현체 : Hibernate, EclipseLink, Apache OpenJPA 등


Hibernate
- JPA 스펙을 구현한 JPA 구현체 중 하나
- JPA를 구현한 라이브러리로서, JPA 스펙을 준수하면서도 JPA 스펙 외의 기능과 확장성을 제공
- 영속성 관리, 객체와 테이블 간의 매핑, 데이터베이스 쿼리 작성 및 실행, 캐싱 등을 제공

 

Spring Data JPA
- Spring 프레임워크와 JPA를 결합하여 사용하기 쉽게 만든 프로젝트
- 개발자가 JPA를 더 쉽게 사용하고 반복적인 작업을 줄이도록 돕는 목적으로 만들어졌습니다.
- JPA 리포지토리를 생성하고, 쿼리 메소드를 정의하며, 데이터베이스 액세스 작업을 단순화합니다.

 

 

출처 : docs.jboss.org

요약
JPA  자바 표준 데이터베이스 액세스 API
Hibernate  JPA 구현체 중 하나
Spring Data JPA Spring 프레임워크와 JPA를 연동하여 JPA를 더 쉽게 사용할 수 있도록 돕는 프로젝트

개발 환경과 요구사항에 따라 이러한 기술을 선택하고 결합하여 사용하면 된다.

 

 

 

참고하면 좋을 레퍼런스

https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html

728x90
반응형

+ Recent posts