[CS] JPA

장다슬·2024년 5월 2일

CS 스터디

목록 보기
21/23

Java Persistence API
자바 ORM 기술에 대한 표준 명세로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스

💡 ORM 이란?
Object Relational Mapping의 약자로, 자바 객체와 관계형 데이터베이스를 매핑해주는 것

JPA는 구현이 없는 단순 명세이기 때문에 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 한다.

JPA 특징 및 장점

1. 객체 중심 개발

2. 생산성 증가

  • SQL 쿼리를 직접 생성하지 않고, 만들어진 객체에 JPA 메소드를 활용해 데이터베이스를 다루기 때문에 개발자에게 매우 편리성을 제공

3. 유지보수 용이

  • 쿼리 수정 시, 엔티티 클래스 정보만 변경하면 되므로 유지보수에 용이

4. 성능 증가

  • 동일 쿼리에 대한 캐시 기능을 지원, 비교적 높은 성능 효율을 경험할 수 있음

5. DBMS에 독립적

  • 사용하는 DB 종류에 관계없이 JPA에서 자동으로 적합한 SQL Dialect(방언)을 만들어 주기 때문에 DB가 변경되어도 SQL문을 다시 작성할 필요 없음

단점

1. 높은 학습 곡선

  • JPA와 관련된 어노테이션들과 영속성 등 JPA의 특성들을 학습해야 함

2. 복잡한 SQL 생성의 어려움

3. 성능 저하의 위험

  • 객체 간의 매핑 설계를 잘못했을 경우 성능 저하가 발생할 수 있으며, 자동화된 SQL 문으로 인해 데이터 조회 성능의 저하 가능성 있음

참고:
gyoogle/tech-interview-for-developer/Web/Spring
/JPA.md

JPA vs Mybatis, 현직 개발자는 이럴 때 사용합니다.
[JPA] JPA와 Hibernate 그리고 Spring Data JPA

profile
반갑습니다

0개의 댓글