티스토리 뷰

JPA

JPA란?

pyounani 2024. 4. 11. 21:39

JPA란?

JPA는 Java Persistence API의 약자입니다. 

위에서 집중적으로 봐야 할 단어는 Persistence인데요, 영속성이라는 의미를 가지고 있습니다. 

 

일반 자바 애플리케이션은 실행 후 종료되면 실행 중 메모리에 저장했던 데이터들은 사라집니다. 

종료가 되더라도 데이터들을 사라지지 않게 하기 위해 데이터들을 데이터베이스에 저장을 하게 되는데요, 

이때 데이터에게 영속성을 부여했다고 할 수 있습니다. 즉, 영속성은 지속된다는 의미를 가지고 있습니다.

 

👉🏻 JPA는 사용가능한 프레임워크나 코드가 아닌, ORM 기술 표준으로 사용되는 인터페이스의 모음이다

 

ORM?

여기서 ORM(Object Relational Mapping)이란 객체와 관계형 데이터베이스 간의 매핑을 말합니다. 

 

예를 들어, 자바에서 회원 클래스를 정의해 봅시다.

회원에는 회원 아이디와 회원 이름을 가지고 있다고 해봅시다. 그럼 왼쪽과 같이 정의할 수 있을 것입니다.

오른쪽 사진은 실제 DB 테이블인데, Member클래스와 DB 테이블이랑 그대로 매핑된다는 의미입니다.

public class Member {
 	private Integer id;
	private String name;
}

 

DB에 있는 데이터를 다루기 위해 ORM 없이는 SQL로 직접 복잡하게 쿼리를 직접 입력해야 했었습니다.

ORM 기술을 이용하면 클래스와 테이블이 매핑이 되어있기 때문에 DB 데이터들을 메서드 호출을 통해 쉽게  다룰 수 있게 됩니다. 

 

단순히 매핑 기능뿐만 아니라 SQL 직접 다루는 문제점, 패러다임 한계와 같은 문제를 극복할 수 있게 해 줍니다.

 

Hibernate?

ORM 프레임워크 중 가장 많이 사용되는 프레임워크는 Hibernate입니다.

 

JPA는 앞서서 Java에서 ORM 표준으로 사용되는 인터페이스 모음이라 했는데,

다시 말하자면 자바 애플리케이션과 관계형 DB를 사용할 수 있는 방법을 정의한 인터페이스라고 할 수 있습니다.

 

이러한 여러 인터페이스들 중 하나가 Hibernate인 것입니다. 

JPA의 인터페이스를 구현한 것이기 때문에 JPA 구현체라고 부르기도 합니다. 

[출처] Google Search

 

 

앞으로 예제 프로젝트를 구현을 하며 JPA에 대해 알아보고자 합니다!

 

 

 

 

본 포스팅은 자바 ORM 표준 JPA 프로그래밍을 참고하여 작성했습니다. 

'JPA' 카테고리의 다른 글

기본 키 매핑(@Id, @GeneratedValue)  (1) 2024.04.23
JPA 데이터베이스 스키마 자동 생성  (0) 2024.04.22
JPA 매핑 어노테이션(@Entity, @Table)  (0) 2024.04.21
패러다임의 불일치  (0) 2024.04.16
SQL 직접 다루는 문제점  (0) 2024.04.12