JPA "Java Persistence API"란 자바의 ORM(Object-Relation Mapping)을 위한 JAVA 표준 API기술이다.
먼저 ORM이란 객체와 관계형 데이터베이스를 맵핑(연결)하는 것으로 DB의 특정 테이블이 자바의 객체로 맵핑되어 일일이 작성하지 않고 객체로 구현할 수 있도록 하는 프레임워크이다.
ORM : 객체와 RDB(관계형 데이터베이스)를 연결
JPA 구현체 :HIBERNATE
, OpenJpa, EclipseLink, DataNucles
Persisitence(영속성) : 애플리케이션 종료 후에도 객체(데이터)가 유지되는 것
위 그림을 보면 JAVA Spring의 기본 ORM 프레임워크인 HIBERNATE
이다. 좌측 JAVA 구역(객체)과 우측 구역(관계)을 연결해주고있다. 이처럼 연결/변환 과정을 자동으로 진행해주기 때문에 객체모델과 관계형 모델의 차이를 해소해준다.
아래 그림에서 객체 모델은 참조를 기반으로 객체간의 관계를 표현하고있지만, 관계형 모델은 2차원 테이블 형태로 되어있다.
변환과정이 필요하다. 변환과정을 대신하여 해주는 것이 ORM Framework이다.
데이터연동 프로젝트는 크게 DB위주와 객체 위주로 나눠볼 수 있다.
DB위주의 프로젝트의 경우 DB에서 직접 필요한 부분의 쿼리를 입력해서 선언 해 둔 클래스로 입력을 받는다. 이는 실무에서 복잡한 일처리나 성능 측면에서 이점을 얻을 수 있다. 하지만 아래와 같은 단점이 분명하다.
대표적으로 Mybatis
가있다.
객체위주의 프로젝트는 쿼리를 일일이 작성할 필요도 없이 JAVA객체를 생성하면
하지만 DB위주의 코드보다 복잡한 일처리나 성능은 조금 부족하다는 단점이있다.