Spring Boot/Spring Data JPA

Spring Data JPA와 Hibernate란?

muggle-coder 2023. 8. 27. 03:24
728x90

Spring Data JPA와 Hibernate는 모두 자바에서 데이터베이스를 다루는 기술이지만, 서로 다른 개념과 목적을 가지고 있습니다. 

Hibernate:

Hibernate는 자바 기반의 ORM (Object-Relational Mapping) 프레임워크입니다. ORM은 객체와 관계형 데이터베이스 간의 매핑을 처리하는 기술이며, Hibernate는 이러한 기능을 제공하는 대표적인 프레임워크 중 하나입니다. Hibernate를 사용하면 자바 객체와 데이터베이스 테이블 간의 매핑을 설정하고, 객체 지향적인 방식으로 데이터를 다룰 수 있습니다. Hibernate는 데이터베이스 연동 작업을 추상화하고 개발자가 직접 SQL을 작성하지 않아도 되도록 도와줍니다.

 

Spring Data JPA:

스프링 Data JPA는 스프링 프레임워크에서 JPA(Java Persistence API)를 편리하게 사용할 수 있도록 지원하는 모듈입니다. JPA는 자바에서 제공하는 데이터베이스 관련 API이며, Hibernate는 JPA의 구현체 중 하나입니다. 스프링 Data JPA는 JPA를 더 간편하게 사용할 수 있도록 스프링의 기능과 통합하여 제공합니다. 스프링 Data JPA를 사용하면 일반적인 CRUD 작업을 보다 쉽게 처리할 수 있으며, 쿼리 메소드, 동적 쿼리, 페이징 및 정렬과 같은 기능을 제공합니다.

 

여기서 JPA란?

JPA는 Java Persistence API의 약자로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의하는 인터페이스입니다. 즉, 인터페이스라는 점에서 특정 기능을 수행하는 라이브러리 개념이 아닌 특정한 기술을 명세한 것에 더 가깝다고 볼 수 있습니다. 여기서 특정한 기술이란 위에서 말한 '자바 어플리케이션에서 관계형 데이터베이스를 사용하는 기술'을 의미한다고 볼 수 있습니다.

  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 기술
  • Java ORM(Object Relational Mapping) 기술에 대한 표준 명세
  • ORM이기 때문에 자바 클래스 DB 테이블 매핑합니다.

 

Hibernate vs 스프링 Data JPA:

  • Hibernate는 ORM 기술 자체를 제공하는 프레임워크로, 개발자가 직접 객체-데이터베이스 매핑 및 SQL 작업을 다루어야 합니다.
  • 스프링 Data JPA는 스프링의 일부로 JPA를 좀 더 편리하게 사용할 수 있도록 도와주는 모듈입니다. JPA를 사용하면 ORM을 더 쉽게 적용할 수 있고, 스프링 Data JPA를 사용하면 JPA를 더 간결하게 활용할 수 있습니다.
  • 스프링 Data JPA는 JpaRepository 인터페이스를 제공하며, 이 인터페이스를 상속받아 기본적인 CRUD 작업을 구현할 수 있습니다.
  • 스프링 Data JPA는 쿼리 메소드와 동적 쿼리 생성 기능을 제공하여 쿼리 작업을 편리하게 처리할 수 있도록 도와줍니다.