JPA

이은수·2023년 4월 3일

JPA란?

  • JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준이다.

  • ORM(Object Relational Mapping)은 객체와 관계형 데이터베이스를 매칭해주는 기술이다.

  • 객체는 객체 지향적으로, 데이터베이스는 데이터베이스대로 설계하고, ORM 프레임워크가 중간에서 2개를 매핑하는 역할이다. 이를 통해 개발자는 소스를 조금 더 객체지향적으로 설계하고 비즈니스 로직에 집중할 수 있다.
  • JPA는 인터페이스를 구현한 가장 대표적인 오픈소스가 Hibernate이다.

JPA 사용시 장점

- 특정 데이터베이스에 종속되지 않음
- 객체지향적 프로그래밍
- 생산성 향상

JPA 사용시 단점

- 복잡한 쿼리 처리
- 성능 저하 위험
- 학습 시간

JPA 동작 방식

  • 엔티티(Entity)
    : 데이터베이스의 테이블에 대응하는 클래스이다. 데이터베이스에 Product 테이블을 만들고, 이에 대응되는 Product.java 클래스를 만들어서 @Entity 어노테이션을 붙이면 이 클래스가 엔티티가 되는 것이다.

  • 엔티티 매니저 팩토리
    : 엔티티 매니저 인스턴스를 관리하는 주체이다. 애플리케이션 실행 시 한개만 만들어지며 사용자로부터 요청이 오면 엔티티 매니저 팩토리로 부터 엔티티 매니저를 생성한다.

  • 엔티티 매니저
    : 영속성 컨텍스트에 접근하여 엔티티에 대한 데이터베이스 작업을 제공한다. 내부적으로 데이터베이스 커넥션을 사용해서 데이터베이스에 접근한다.

  • 영속성 컨텍스트
    :엔티티를 영구 저장하는 환경으로 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다.

0개의 댓글