[JPA] JPA , Hibernate , Spring Data JPA 비교 정리

해니·2023년 5월 18일
0

JPA

목록 보기
1/8
post-thumbnail

JPA (Java Persistence API)

  • 자바 ORM 기술에 대한 API 표준 명세 (ORM 기술의 인터페이스들을 모아둔 것)
  • JPA를 사용하려면 JPA를 구현한 ORM 표준 프레임워크를 선택해야한다.
  • 현재 가장 대중적인 ORM 프레임워크는 하이버네이트(Hibernate)이다.
    • 하이버네이트 외에도 EclipseLink, DataNucleus, OpenJPA, TopLink Essentials 등이 있다.





하이버네이트(Hibernate)

  • JPA 구현체의 한 종류
  • 현 시점에서 JPA를 주도하는 프레임워크이기에 JPA와 혼용해서 사용하기도 하며, 2001에 공개된 후 지금도 발전하고 있는 성숙한 ORM 프레임워크
  • SQL 매퍼인 MyBatis와 달리 직접 SQL을 사용하지 않고 직관적인 코드를 사용해 데이터를 조작할 수 있다.





Spring Data JPA

  • JPA를 쉽게 사용하기 위해 스프링에서 제공하고 있는 프레임워크
  • 추상화 정도 : Spring-Data-JPA -> Hibernate -> JPA
  • 하이버네이트에 비해 구현체/저장소 교체가 용이하다.






💡 Persistence Framework (Mybatis, Hibernate, JPA)

  • JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발
    할 수 있으며, 안정적인 구동을 보장한다
  • SQL Mapper
    • SQL ←mapping→ Object 필드
    • SQL 문장으로 직접 데이터베이스 데이터를 다룬다.
    • Mybatis, jdbcTemplate 등
  • 객체(Object) 관게 맵퍼(ORM)
    • DB 데이터 ←mapping→ Object 필드
    • 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.
    • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결) 해주는 것
    • Hibernate 등
      (기존의 Hibernate 를 통해 만든 것이 JPA (Java Persistence API) 이며, Spring 에서는 Spring Data JPA를 사용한다)
  • 장점
    • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다
    • 재사용 및 유지보수의 편리성이 증가한다
    • DBMS 에 대한 종속성이 줄어든다
  • 단점
    • 완벽한 ORM 으로만 서비스를 구현하기가 어렵다.
      • DBMS의 고유 기능을 이용하기 어렵다
    • 프로시저가 많은 시스템에선 ORM 의 객체 지향적인 장점을 활용하기 어렵다









출처
https://annajin.tistory.com/192
https://theheydaze.tistory.com/595
https://velog.io/@adam2/JPA%EB%8A%94-%EB%8F%84%EB%8D%B0%EC%B2%B4-%EB%AD%98%EA%B9%8C-orm-%EC%98%81%EC%86%8D%EC%84%B1-hibernate-spring-data-jpa
https://annajin.tistory.com/168

profile
💻 ⚾️ 🐻

0개의 댓글