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

🎈 JPA의 주요 특징
1. 객체-관계 매핑(ORM, Object-Relational Mapping)
- JPA는 객체와 데이터베이스 테이블을 매핑하여, SQL을 직접 작성하지 않아도 객체의 메서드를 호출함으로써 데이터를 다룰 수 있다.
- 클래스 → 데이터베이스 테이블
- 클래스의 필드 → 테이블의 컬럼
- 객체 → 데이터베이스의 레코드
2. 표준 인터페이스
- JPA는 표준 스펙이기 때문에, Hibernate, EclipseLink, OpenJPA 등 다양한 구현체를 선택하여 사용할 수 있다.
3. 어노테이션 기반 매핑
- JPA는 애노테이션(@Entity, @Id, @Table 등)을 사용하여 객체와 데이터베이스 테이블 간의 매핑을 설정.
4. 트랜잭션 관리
- 데이터 변경 시 트랜잭션을 지원하여 일관성과 안정성을 보장.
🎈 JPA의 장단점
👍 장점
- 생산성 향상: 반복적인 SQL 작성 없이 객체 지향적으로 데이터 처리 가능.
- DB 독립성: 다양한 DBMS에 적용 가능하며, JPQL로 호환성 제공.
- 성능 최적화: 캐싱 및 Lazy Loading 등 성능 튜닝 지원.
- 유지보수 용이: 가독성 높은 코드로 개발 효율성 증가.
👎 단점
- 복잡성: 초기 설정과 매핑 작업이 번거로움.
- 성능 이슈: Lazy Loading과 N+1 문제 등 성능 관리 필요.
- 학습 곡선: 영속성 컨텍스트, 트랜잭션 관리 등 학습 요구.
- 세부 제어 한계: 특정 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 |