Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
Archives
Today
Total
관리 메뉴

J.one_DevNote

Spring Boot - JPA 와 Hibernate(1) 본문

Spring Boot

Spring Boot - JPA 와 Hibernate(1)

중엔 2023. 1. 5. 11:10

JPA(Java Persistence API)

JPA는 자바 ORM 기술 표준으로 사용되는 인터페이스이다. 따라서 실제적으로 구현된것이 아니라 구현된 객체와 매핑을 해주기 위해 사용되는 프레임워크 혹은 기술 명세라고 생각하면된다. 이러한 JPA라는 기술명세를 바탕으로 구현한 대표적인 구현체로는 Hibernate, EclipseLink, DataNucleus  있다. 하지만 거의 Hibernate가 사용된다고 보면 된다.

**ORM (Object-Relational Mapping) : 객체와 관계형 데이터베이스를 매핑한다는 뜻

출처 : https://ultrakain.gitbooks.io/jpa/content/chapter1/chapter1.3.html

JPA의 장점

  • 생산성 향상 : JPA는 SQL을 직접 사용하지않고, 메소드 호출 방식을 이용하기 때문에 생상성 향상에 도움을 준다.
  • 유지보수  : 테이블 엔티티가 변경되어도 JPA가 대신 처리하기 때문에 유지보수 해야하는 범위가 줄어든다.
  • 객체지향적 개발 : 데이터중심의 개발을 벗어나 객체지향적 개발, 즉 비즈니스 로직에 집중할 수 있다.
  • 벤더 독립성 : 데이터베이스에 종속되지않으며, 데이터베이스 변경시 JPA에게 변경 사실만 알려주면된다.

JPA의 단점

  • 어려움 : 많은 것을 배워야 하고, 잘못할 경우 데이터 손실이 있다.
  • 성능 : Mybatis처럼 직접 쿼리로 호출하는 것이 아니기 때문에 성능이 조금 떨어진다.
  • 세밀함 : 복잡한 분석 쿼리같은 경우 처리하는 것이 힘들며, 이를 위해 JPQL을 지원한다.

Spring Data JPA

Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로, 개발자가 JPA를 더 쉽고 편하게 사용할 수 있도록 도와준다. 기존 JPA를 사용하려면 EntityManager를 주입받아서 사용해야 하지만 Spring Data JPA는 한 단계 추상화시킨 Repository라는 인터페이스를 제공함으로써 이루어진다. 사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록해준다.

출처 : https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/

 

참조

https://ultrakain.gitbooks.io/jpa/content/

 

Introduction · jpa

 

ultrakain.gitbooks.io

https://dev-coco.tistory.com/74

 

[JPA] JPA와 Hibernate 그리고 Spring Data JPA

1. JPA(Java Persistent API)란? JPA란 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세를 의미합니다. JPA는 특정 기능을 하는 라이브러리가 아니고, ORM을 사용하기 위한 인터페이스를 모아둔 것입

dev-coco.tistory.com

 

Comments