스프링 공부/JPA

[JPA] 2. 그러면 JPA는 또 무엇일까?

장아장 2022. 10. 17. 19:55

JPA : Java Persistance API

직역하자면 자바 영속성 API이다. 

ORM은 객체와 관계형 데이터베이스의 매핑이라고 한다면, JPA는 자바에서 사용하는 ORM 프레임워크라고 생각하면 된다. 

자바 애플리케이션(우리가 코딩해서 만든 프로그램)과 JDBC API 사이에 존재한다. 

JPA의 기능은

  1. 객체를 분석한다. 
  2. Create, Read, Update, Delete등에 맞게 sql문을 만들어준다. 
  3. JDBC API를 사용한다. 
  4. ResultSet 매핑
  5. 객체 지향 프로그래밍과 관계형 데이터베이스의 패러다임 차이점을 극복시켜준다. 

이를 통해 우리는

  • 이러한 JPA를 통해 현대에 가장 자주 사용하는 관계형 데이터베이스를 이용해 객체지향 프로그래밍을 할 수 있다.  즉, SQL에 중점을 두고 개발하던 상황에서 벗어나 객체 중심 개발을 할 수 있게 되었다. 
  • JPA가 데이터베이스에 맞는 쿼리문을 알아서 작성해주기 때문에 CRUD를 구현할 때 마다 쿼리문을 작성할 필요가 없어진다. 
  • 기존엔 하나의 필드를 수정하기 위해 모든 쿼리문을 수정해야 했지만, 필드만 추가하는 경우에는 JPA가 자동적으로 처리해준다. 
  • 후에 서술할 슈퍼타입, 서브타입으로 상속관계도 정의할 수 있게 된다. 

라는 장점을 가지게 된다. 또한 성능 향상을 가져올 수 있고, 데이터 접근의 추상화와 벤더의 독립성을 만들 수 있다. 

이러한 장점 때문에, JPA는 자바를 사용하는 부분에서 표준이 되었다.