[JPA] JPA란 무엇인가?(정의, 주요 특징, 장단점)

2024. 12. 26. 10:48·JPA

JPA(Java Persistence API)는 Java 표준 ORM(Object-Relational Mapping)기술로 Java 애플리케이션에서 객체와 관계형 데이터베이스 간의 매핑을 관리하고 데이터 접근을 처리하는 표준 인터페이스이다.

 

출처 : 생성형 AI


🎈 JPA의 주요 특징

1. 객체-관계 매핑(ORM, Object-Relational Mapping)

  • JPA는 객체와 데이터베이스 테이블을 매핑하여, SQL을 직접 작성하지 않아도 객체의 메서드를 호출함으로써 데이터를 다룰 수 있다.
    • 클래스 → 데이터베이스 테이블
    • 클래스의 필드 → 테이블의 컬럼
    • 객체 → 데이터베이스의 레코드

 

2. 표준 인터페이스

  • JPA는 표준 스펙이기 때문에, Hibernate, EclipseLink, OpenJPA 등 다양한 구현체를 선택하여 사용할 수 있다.

 

3. 어노테이션 기반 매핑

  • JPA는 애노테이션(@Entity, @Id, @Table 등)을 사용하여 객체와 데이터베이스 테이블 간의 매핑을 설정.

 

4. 트랜잭션 관리

  • 데이터 변경 시 트랜잭션을 지원하여 일관성과 안정성을 보장.

🎈 JPA의 장단점

👍 장점

  1. 생산성 향상: 반복적인 SQL 작성 없이 객체 지향적으로 데이터 처리 가능.
  2. DB 독립성: 다양한 DBMS에 적용 가능하며, JPQL로 호환성 제공.
  3. 성능 최적화: 캐싱 및 Lazy Loading 등 성능 튜닝 지원.
  4. 유지보수 용이: 가독성 높은 코드로 개발 효율성 증가.

👎 단점

  1. 복잡성: 초기 설정과 매핑 작업이 번거로움.
  2. 성능 이슈: Lazy Loading과 N+1 문제 등 성능 관리 필요.
  3. 학습 곡선: 영속성 컨텍스트, 트랜잭션 관리 등 학습 요구.
  4. 세부 제어 한계: 특정 DB 기능 활용 시 Native Query 필요.

이번 포스팅은 JPA의 정의와 특징, 장단점을 알아보았습니다, 다음 포스팅은 JPA 영속성 컨텍스트와, Entity Manager에 대해 알아보겠습니다 🥳

'JPA' 카테고리의 다른 글

JPA N+1 문제(EntityGraph, Fetch join)  (0) 2025.04.28
[JPA] 영속성 컨텍스트(Persistence Context) & Entity Manager를 파헤쳐보자  (1) 2024.12.27
'JPA' 카테고리의 다른 글
  • JPA N+1 문제(EntityGraph, Fetch join)
  • [JPA] 영속성 컨텍스트(Persistence Context) & Entity Manager를 파헤쳐보자
Song Pro
Song Pro
난... 24시간이 모자르다...
  • Song Pro
    송프로의 개발 난투극
    Song Pro
  • 전체
    오늘
    어제
    • 분류 전체보기 (6)
      • Java (0)
      • JPA (3)
      • QueryDSL (2)
      • Test (0)
      • CS(Computer science) (1)
      • 회고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    query DSL
    영속선 컨텍스트
    singleton #
    dto매핑
    2025년 1분기 회고
    Abstract Factory
    생성패턴
    순환참조
    persistent
    영속성컨텍스트
    DTO
    entitygraph
    EntityManager
    JPA
    N+1
    springboot
    fetch join
    QueryDSL
    java
    springframework
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Song Pro
[JPA] JPA란 무엇인가?(정의, 주요 특징, 장단점)
상단으로

티스토리툴바