1. JAP (Java Persistence API, 자바 ¹영속성 ²API)
자바로 만든 객체와 데이터베이스 테이블을 ³ORM 기술을 이용하여 매핑하고, 사용하는 방식을 정의한 ⁴인터페이스
cf) Spring Data JPA: JPA 사용 편이를 위해 만들어진 모듈로, JPA를 한 단계 추상화시킨 Repository라는 인터페이스 사용
1) 영속성(Persistence): 지속적인 것, 영원한 것을 뜻하는 단어로 자바로 만든 객체를 DB에 지속하는 것
2) API(Application Programming Interface):어플리케이션(소프트웨어) 간 서로 통신할 수 있게하는 약속
3) ORM(Object Relational Mapping): 애플리케이션 클래스와 RDB(Relational DataBase)의 테이블을 Mapping 하는 것
4) 인터페이스: 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
JPA 인터페이스를 구현한 대표적인 오픈소스 Hibernate(ORM 대표 프레임 워크)
JPA 2.1표준 명세를 구현한 3가지 구현체: Hibernate, EclipseLink, DataNucleus
2. JPA의 동작 과정
애플리케이션과 JDBC사이에서 동작함
개발자가 JPA를 사용하면 JPA내부에서 JDBC API를 사용하여 SQL을 호출하고 DB와 통신 함(개발자가 JDBC API쓰는 것x)
- 저장과정: 개발자가 JAP에게 객체를 넘김-> JPA는 객체의 엔티티를 분석하고 INSERT SQL을 생성, JDBC API를 사용하여 SQL을 DB에 보냄
- 조회과정:
개발자는 조회하고 싶은 객체의 PK값(기본키)를 JPA에게 넘김
JDBC API를 사용하여 SQL을 DB에 보내고 DB로부터 결과를 받아옴
결과(ResultSet)를 객체에 모두 매핑함
3. JPA 특징
SQL중심적인 개발에서 객체 중심으로 개발
생산성: 간편하게 CRUD 할 수 있어서 생산성이 좋다
유지보수: 기존 유지보수는 필드 변경 시 모든 SQL을 수정해야 하는데 JPA는 필드만 추가하면 됨
쿼리를 JPA가 만들어 주기 때문에 Object 와 RDB간의 패러다임 불일치를 해결할 수 있음
'Spring > JPA' 카테고리의 다른 글
📝 트랜잭션(Transacction)이란? (0) | 2022.11.18 |
---|---|
📝 ORM, JPA, Spring Data JPA 정리 (0) | 2022.11.18 |
인텔리제이(Intellij) JPA 설정 (0) | 2022.10.24 |
Spring JPA - 리포지토리 인스턴스 생성 (0) | 2022.10.14 |
Spring JPA - 비동기 쿼리 결과 (0) | 2022.10.14 |