JAVA Persistence API

소개

Java 진영에서 ORM(Object-Relational-Mapping) 기술의 표준으로 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 모음이다.

즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 DB를 매핑 해주기 위해 사용되는 프레임워크이다.

JPA를 구현한 대표적인 오픈소스로는 Hibernate, OpenJPA 가 있다.

JPA는 Spring 만큼이나 깊이있는 학습이 필요한 기술이다.

JPA를 왜 사용해야 하는가?

  1. JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계를 이용해서 SQL을 생성하고 실행하는데, 개발자는 어떤 SQL이 생성되어 실행되는지 생각만 하면 되고 예측도 쉽게 할 수 있다. 또한, “네이티브 SQL”이라는 기능을 통해서 관계 매핑이 복잡하거나 성능 이슈가 있는 경우 SQL을 직접 작성할 수 있다.

  2. 객체 중심으로 개발할 수 있다. 객체 중심으로 개발하면 이에 따라 생산성과 유지보수 효율이 좋아진다. 또한 개발 패러다임을 일치 시켜준다. JAVA의 패러다임은 객체지향이지만, RDB는 객체지향 보다는 데이터 중심의 패러다임을 가지고 있는데 해당 문제를 JPA가 해결해 줄 수 있다.

    예를들어, Java에서 부모 클래스와 자식 클래스의 상속관계가 존재하는데, RDB에서는 상속관계를 지원하지 않는다. 이런 상속 관계를 JPA는 슈퍼타입과 서브타입 관계를 통해 해결해준다.

    Untitled

JPA 작동 방법