1. JPA란
JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스를 관리하고 조작하기 위한 표준 API로 자바 객체와 데이터베이스 테이블 간의 매핑을 통해 데이터베이스와의 상호작용을 단순화하고, 객체 지향적인 방식으로 데이터 관리를 할 수 있도록 도와주는 API다.
객체-관계 매핑(ORM, Object-Relational Mapping)을 제공하여, SQL을 사용하지 않고도 데이터베이스 작업을 할 수 있게 하는 것이 목표라고 할 수 있다.
2. ORM?
ORM은 객체 지향 프로그래밍 언어에서 정의된 객체와 관계형 데이터베이스의 테이블을 자동으로 매핑해주는 기술이다.
ORM을 사용하면 아래의 장점을 기대할 수 있다.
- 데이터베이스와 상호작용할 때 반복되는 코드 작성을 줄여줌.
- 객체 지향적인 접근 방식을 유지할 수 있음.
- 데이터베이스 독립성을 제공하여, 데이터베이스 시스템을 변경해도 애플리케이션 코드를 최소한으로 수정할 수 있음.
3. JPA의 주요 개념
- Entity
- 데이터베이스 테이블에 매핑되는 자바 클래스
- 각 엔티티는 데이터베이스 테이블의 행(row)을 나타내며, 클래스의 필드는 테이블의 열(column)에 매핑된다.
- Entity Manager
- JPA의 핵심 인터페이스로, Entity의 생명주기를 관리
- 데이터베이스 작업(삽입, 조회, 업데이트, 삭제)을 수행
- 영속성 컨텍스트(Persistence Context)
- Entity Manager가 관리하는 Entity 객체들의 집합
- 영속성 컨텍스트는 특정 트랜잭션 내에서 Entity를 캐시하고, 이를 통해 성능을 최적화
- JPQL(Java Persistence Query Language)
- Entity 객체를 대상으로 하는 객체 지향 쿼리 언어
- SQL과 유사하지만, 데이터베이스 테이블이 아닌 Entity 객체를 대상으로 쿼리를 작성
4. JPA의 장점
- 생산성 향상: 데이터베이스 작업을 위한 반복 코드를 줄이고, 객체 지향적인 접근 방식을 유지할 수 있다.
- 유지 보수성: 데이터베이스 독립성을 제공하여, 데이터베이스 시스템을 변경해도 애플리케이션 코드를 최소한으로 수정할 수 있다.
- 성능 최적화: 영속성 컨텍스트와 같은 기능을 통해 성능을 최적화할 수 있다.
'Back-end > JPA' 카테고리의 다른 글
순환 참조(+ DTO를 사용해야 하는 이유) (0) | 2024.05.19 |
---|