JPA
#
Find similar titles
-
최초 작성자
hskim@insilicogen.com
- 최근 업데이트
Structured data
- Category
- Programming
Table of Contents
JPA 란? #
- Java Persisitence API로 자바 진영의 ORM 기술 표준으로 사용되는 인터페이스 모음
- 실제로 구현된 것이 아닌 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크
- 대표적인 오픈소스는 Hibernate가 있다.
ORM? #
- 객체형태의 자바 영역과 RDB 형태의 DB 영역의 패러다임 불일치를 서로 매핑
- Persistant API라고도 할 수 있다.
- ORM을 사용하면 더 직관적이고 비즈니스 로직에 집중할 수 있고, 재사용 및 유지보수에 용이하며, DBMS에 대한 종속성이 줄어드는 이점이 있다.
- 하지만 프로시저가 많은 시스템에서는 ORM의 객체지향적인 장점을 활용하기 힘들다.
왜 JAP를 사용해야 하는가? #
- JPA는 반복적인 CRUD를 처리해주며 매핑된 관계를 통해 SQL을 생성하고 실행하는데 개발자는 SQL이 실행될지 생각만 하면 된다.
- 개발자가 SQL이 아닌 객체 중심으로 개발할 수 있는 장점이 있다.
동작과정 #
- JPA는 애플리케이션과 JDBC 사이에서 동작한다.
- JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신
- 개발자가 직접 JDBC API를 쓰는 것은 아님
저장 #
- 개발자가 사용하고자 하는 객체를 JPA에 넘기면 엔티티를 분석하여 SQL을 생성하고 SQL을 DB에 날린다.
조회 #
- 조회하고자 하는 객체의 PK를 넘기면 SELECT SQL을 생성하여 DB에 날리고 데이터를 가져온다.
JPA의 성능 최적화 기능 #
- 1차 캐시와 동일성 보장
- 트랙잭션을 지원하는 쓰기 지연
- 지연 로딩