본문 바로가기
JPA

[JPA] JPA란?

by 성시니 2021. 12. 3.
반응형

JPA(Java Persistence API)란?

자바 진영의 ORM 기술에 대한 API 표준 명세 (인터페이스 집합체)

JPA는 애플리케이션과 JDBC사이에서 동작한다.

ORM (Object-relational mapping)이란?

이름 그대로 객체와 관계형 데이터베이스를 매핑하는 것

 

ORM 프레임워크란?

ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치를 해결해준다.

ORM 프레임워크를 사용하면 객체를 DB에 저장할때 SQL문을 직접 작성하는 것이 아닌 객체를 자

바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 자동으로 SQL문을 생성해서 DB에 저장한다.

ORM 프레임워크를 사용하면 CRUD 할때마다 쿼리를 작성해야하는 반복적인 작업을 줄일 수 있고

기존의 SQL 중심의 코딩에서 벗어나 객체 중심의 코딩이 가능하다.

즉 생산성이 더 높아진다.

 

JPA를 사용하는 이유?

  • 생산성

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

SQL를 작성하고 JDBC API를 사용하는 반복적인 일을 JPA가 대신 해주기 때문에 기존의 데이터베이

스 설계 중심에서 객체 설계 중심으로 변경이 가능하다.

 

  • 유지보수

SQL를 직접 다루게되면 필드 하나만 추가해도 관련된 CRUD를 모두 수정하여야 한다.

JPA를 사용하게 되면 이런 과정을 JPA가 대신 처리해주므로 필드를 추가하거나 삭제해도 수정해야

할 코드가 줄어든다 즉 프로그램의 유지보수가 월등히 편해진다.

 

  • 패러다임의 불일치 해결

객체 모델과 관계형 데이터베이스 모델은 지향하는 패러다임이 서로 다르다.

그러므로 객체를 테이블 구조에 저장하는 데는 한계가 있다.

객체지향 애플리케이션은 정교한 객체 모델링을 할수록 패러다임의 불일치 문제가 더 커진다.

JPA는 연관된 객체를 사용하는 시점에 SQL을 전달하고 같은 트랜잭션 내에서 조회할 때 동일

성도 보장한다. 이러한 과정에서 다양한 패러다임의 불일치를 해결한다.

 

  • 성능

JPA는 애플리케이션과 데이터베이스 사이에서 동작한다.

JDBC API는 같은 트랜잭션 안에서 같은 조회 코드를 두 번 작성하면 SELECT SQL을 사용해서 데이터

베이스와 두 번 통신한다.

JPA는 같은 상황에서 SELECT SQL을 한 번만 데이터베이스에 전달하고 두 번째는 객체를 재사용한다.

 

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

관계형 데이터베이스는 같은 기능도 벤더마다 사용법이 다른 경우가 많다.

애플리케이션은 처음 선택한 데이터베이스 기술에 종속되어 추후 다른 데이터베이스로 변경하기 매

우 어렵다.

JPA는 애플리케이션과 데이터베이스 사이 추상화된 접근 계층을 제공하여 특정 데이터베이스 기술

에 종속되지 않도록 한다.

추후 데이터베이스 변경을 원한다면 JPA 설정만 바꿔주면 된다.

김영한, ⌜자바 ORM 표준 JPA 프로그래밍⌟, 에이콘출판, 2015

 

반응형

'JPA' 카테고리의 다른 글

[JPA] orphanRemoval  (0) 2021.12.02
[JPA] CASCADE 란?  (0) 2021.12.01

댓글