[Spring] JPA(Java Persistence API)란?

상트리버·2022년 11월 26일
0

Spring 이론

목록 보기
2/23

JPA(Java Persistence API)는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다.
즉, 실제로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임 워크이다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다.


ORM(Object-Relational Mapping)

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도우미 역할을 한다.

ORM의 장/단점


장점
1) 완벽한 객체지형적인 코드 -> 직관적인 이해가 쉽다
2) 재사용, 유지보수, 리팩토링의 용이성
3) DBMS(DataBase Management System) 종속성 하락
-> 객체의 자료형 타입까지 사용할 수 있기 때문에
ex) 자바의 경우 equals, hashCode의 자바기능 이용 가능


단점
1) ORM이 모든 걸 해결해줄 수 없다. -> 적절한 SQL문
2) 복잡한 쿼리문의 경우 오히려 SQL문으로 사용이 직관적이면서 효율적이다.


JPA(Java Persistence API)

  • Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음
  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • 인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현함

JPA를 사용하는 이유

JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계를 이용해서 SQL을 생성하고 실행하는데, 개발자는 어떤 SQL이 실행될지 생각만하면 되고, 예측도 쉽게 할 수 있다. 추가적으로 JPA는 네이티브 SQL이란 기능을 제공해주는데 관계 매핑이 어렵거나 성능에 대한 이슈가 우려되는 경우 SQL을 직접 작성하여 사용할 수 있다.


JPA를 사용하여 얻을 수 있는 가장 큰 것은 SQL아닌 객체 중심으로 개발할 수 있다는 것이다. 이에 따라 당연히 생산성이 좋아지고 유지보수도 수월하다. 또한 JPA는 패러다임의 불일치도해결하였다.

JPA 저장 및 조회 구조

저장

조회

0개의 댓글