JPA

1.3 JPA란 무엇인가?

fmoths 2021. 1. 4. 19:40

1.3.1 JPA 소개

1) JPA(Java Persistence API) : 자바진영의 ORM 기술에 대한 API 표준 명세

2) ORM (Object - Relational Mapping) : 객체와 관계형 데이터 베이스를 매핑 해주는 기술

-> 객체와 데이터베이스의 패러다임 불일치 문제를 해결해준다.

 

1.3.2 왜 JPA를 사용해야 하는가?

1) 생산성

- 자바 컬렉션에 객체를 저장하듯이 JPA에 저장할 객체를 전달하면 된다.

- 지루하고 반복적인 코드와 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다.

- DDL문 자동생성 기능

-> 데이터베이스 패러다임에서 객체 설계 중심 패러다임으로 역전 가능

 

2) 유지보수

- 기존에는 필드 하나만 추가해도 관련된 모든 JDBC API 코드 수정해야 한다.

- 반면에 JPA에서는 이러한 기능을 자동적으로 처리해주므로 유지 보수할 코드가 줄어든다.

 

3) 패러다임의 불일치 해결

- JPA는 상속, 연관관계, 객체 그래프 탐색 등의 패러다임 불일치 문제를 해결해 준다.

 

4) 성능

- JPA는 애플리케이션과 데이터베이스 사이에 있어 다양한 성능 최적화의 기회를 제공한다.

- 대표적으로 1차 캐시 기능이 있다.

 

5) 데이터 접근 추상화와 벤더 독립성

- 관계형 데이터 베이스는 같은 기능도 벤더마다 사용법이 다른 경우가 많다. (대표적으로 페이징 기능)

- JPA는 추상화된 데이터 접근 계층을 제공하여 애플리케이션이 특정 데이터베이스 기술에 종속되지 안도록 한다.

 

6) 표준

- JPA는 자바진영의 ORM 표준으로서 다른 구현기술로 손쉽게 변경할 수 있다.