JPA

1. JPA & Hibernate

ggomjiu 2025. 6. 6. 18:09

JPA

: 자바 진영의 ORM 기술 표준으로 사용되는 인터페이스 모음

 

cf) ORM

ORM 

: Object-Relational Mapping(객체 관계 매핑) 객체는 객체대로, 관계형 DB는 관계형 DB대로 설계하고 ORM 프레임워크가 중간에서 매핑

 

- JPA는 애플리케이션과 JDBC 사이에서 동작

- JPA는 DB와 자바 객체를 매핑하기 위한 인터페이스를 제공하고 Hibernate, OpenJPA, EclipseLink 등이 인터페이스를 구현하고 있음

- 그 중 가장 많이 쓰이는 것이 Hibernate

- JPA를 사용하는 이유 )

  • SQL 중심적인 개발에서 객체 중심으로 개발
  • 페러다임의 불일치 해결 -> 상속 등
  • 데이터 접근 추상화와 벤더 독립성
  • 반복적인 CRUD SQL을 처리해줌

- 장점 )

  • SQL이 아닌 메소드로 DB를 조작하여 객체 모델을 이용하여 비즈니스 로직을 구성하는 데만 집중 가능
  • 객체지향적인 코드 작성 가능
  • DB를 변경해야 하는 경우 새로 쿼리를 짜지 않아도 됨

- 단점 )

  • 잘못 설계할 경우 속도 저하가 발생
  • 복잡한 쿼리의 경우 별도의 튜닝이 필요하기 때문에 SQL을 써야할 수도 있음

- 동작 원리 )

  1. 애플리케시연과 JDBC 사이에서 동작
  2. Entity 객체 분석 및 SQL 생성
    • 애플리케이션에서 JPA의 persist() 메서드 호출
    • JPA : Entity 객체 분석 -> 적절한 SQL 생성
  3. 생성된 SQL -> JDBC API를 통해 DB에 전송되어 실행
  4. 객체 - 관계 매핑

Hibernate

: Java 언어를 위한 ORM 프레임워크

- JPA의 구현체로 JPA의 인터페이스를 구현하며, 내부적으로 JDBC API를 사용

- Hibernate를 사용하면 상속, 다형성, 연결, 구성 및 JAVA 컬렉션 프레임워크를 포함하여 자연스러운 객체 지향 관용구를 따르는 영구 클래스를 개발할 수 있음

- 개발자 생산성과 런타임 성능 측면에서 JDBC 코드보다 우수한 성능을 일관되게 제공함

 

cf)JDBC

JDBC

: Java 기반 애플리케이션의 데이터를 DB에 저장 및 업데이트하거나, DB에 저장된 데이터를 Java에서 사용할 수 있도록 하는 자바 API

- Java 애플리케이션에서 DB에 접근하기 위해 JDBC API를 사용하여 DB에 연동할 수 있음

- DB에서 자료를 쿼리하거나 업데이트하는 방법을 제공

- 3가지 기능을 표준 인터페이스로 정의하여 제공

  • java.sql.Connection : 연결
  • java.sql.Statement : SQL을 담은 내용
  • java.sql.ResultSet : SQL 요청 응답

- 동작 흐름 )

- Java 애플리케이션 내에서 JDBC API를 사용하여 DB에 접근하는 단순한 구조

- JDBC API를 사용하기 위해서는 JDBC 드라이버를 먼저 로딩한 후 DB와 연결하게 됨

- JDBC 드라이버 )

  • DB와의 통신을 담당하는 인터페이스
  • Oracle, MySQL 등과 같은 DB에 알맞은 JDBC 드라이버를 구현하여 제공
  • JDBC 드라이버의 구현체를 이용해서 특정 벤더의 DB에 접근할 수 있음

 

 

 

 

 

 

 

 

 

 

Reference

https://ittrue.tistory.com/250

 

[Java] JDBC란 무엇인가? - Java Database Connectivity

JDBC란? JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 있도록 하는 자바 API이다. JDB

ittrue.tistory.com

https://chaeyami.tistory.com/256

 

[JPA] JPA와 하이버네이트(Hibernate)

JPA(Java Persistent API)JPA(Java Persistence API) : ORM 기술의 표준 인터페이스ORM은 객체와 관계형 데이터베이스를 매핑해 주는 기술이며, JPA는 이를 표준화한 것이다.그러니까, 자바 애플리케이션에서

chaeyami.tistory.com

 

'JPA' 카테고리의 다른 글

6. JPA의 캐시  (0) 2025.06.17
5. M : N 해결 전략  (0) 2025.06.17
4. N + 1 문제  (0) 2025.06.17
3. Eager, Lazy Loading  (0) 2025.06.06
2. 영속성 컨텍스트(캐시, 동일성 보장, 변경 감지, 트랜잭션 지연)  (0) 2025.06.06