JPA 소개
- JPA(Java Persistence API)는 자바 ORM 기술에 대한 API 표준 명세입니다.
- 객체 지향적인 코드를 작성하면서 관계형 데이터베이스를 쉽게 다룰 수 있도록 도와줍니다.
- JPA는 Hibernate, EclipseLink, DataNucleus와 같은 구현체를 통해 사용할 수 있습니다.
JPA의 목표
- SQL 중심적인 개발에서 객체 중심으로 개발할 수 있도록 도와줍니다.
- 간편하게 CRUD 작업을 처리할 수 있습니다.
- 유지보수에 용이하도록 도와줍니다.
JPA 기본 개념
- 엔티티(Entity): 데이터베이스 테이블과 1:1로 매핑되는 자바 객체입니다.
- 영속성 컨텍스트(Persistence Context): 엔티티를 영구 저장하는 환경입니다.
- 영속성 관리자(Entity Manager): 영속성 컨텍스트를 관리하는 역할을 합니다.
JPA 사용법
- 엔티티 클래스 정의: 데이터베이스 테이블과 매핑할 자바 클래스를 정의합니다. 이 때 JPA의 어노테이션을 사용합니다.
- 엔티티 매니저 팩토리 생성: 데이터베이스 연결 등의 설정 정보를 기반으로 엔티티 매니저 팩토리를 생성합니다.
- 엔티티 매니저 생성: 엔티티 매니저 팩토리에서 엔티티 매니저를 생성합니다.
- 트랜잭션 관리: 엔티티 매니저를 통해 데이터베이스의 CRUD 작업을 수행합니다. 이 때 트랜잭션을 사용하여 작업을 관리합니다.
JPA 장단점
- 장점: 객체 지향적인 코드로 작성 가능, 간편한 CRUD 처리, 유지보수 용이성 등
- 단점: 학습 곡선이 있음, 성능 최적화에 어려움이 있을 수 있음