JPA란 무엇인가

SEPTEMBER·2024년 11월 26일

JPA

목록 보기
1/1

우리는 JAVA로 애플리케이션을 개발하지만, 애플리케이션에서 생성된 데이터는 대부분 관계형 데이터베이스에 저장됩니다. 즉, 애플리케이션을 개발하는 도구과 데이터를 저장하는 방식이 서로 다른 것입니다.

바로 이 차이가 JPA의 등장 배경입니다.

JAVA는 객체 중심의 구조를 가지지만, 관계형 데이터베이스는 데이터 중심의 구조를 가집니다. JAVA의 객체와 관계형 데이터베이스는 지향하는 목적이 서로 다르므로 둘의 기능과 표현 방법도 다릅니다. 따라서 객체 구조를 관계형 데이터베이스(테이블) 구조에 저장하는 데는 한계가 있을 수밖에 없습니다. 자바 ORM 표준 JPA 프로그래밍-김영한 지음

이것을 '패러다임의 불일치 문제'라고 일컫는데, 이 말이 어렵다면 단순하게 두개의 시스템이 작동하는 방식이나 구조가 일치하지 않아서 발생하는 문제라고 생각하면 됩니다.

이 '패러다임의 불일치 문제'가 수많은 개발자 혹은 개발자 지망생을 고행의 수렁으로 빠트리게 됩니다. 그리고 이런 상황에 구세주로 등장한 것이 바로 JPA입니다.

ORM(Object-Relational Mapping)

JPA 곁에는 늘 함께 따라다니는 수식어가 하나 있는데, 그것은 바로 ORM입니다.

ORM(Object-Realational Mapping)은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻입니다. ORM 프레임워크는 객체와 테이블을 매핑해서 앞서 언급한 패러다임의 불일치 문제를 개발자 대신 해결해줍니다. 자바 ORM 표준 JPA 프로그래밍-김영한 지음

그리고 JPA는 바로 이 ORM 기술 표준입니다.

JPA(Java Persistence API)

데이터베이스는 객체 구조와는 다른 데이터 중심의 구조를 가지므로 객체를 데이터베이스에 직접 저장하거나 조회할 수는 없습니다. 따라서 개발자가 객체 지향 애플리케이션과 데이터베이스 중간에서 SQL과 JDBC API를 사용해서 변환 작업을 직접 해주어야 합니다. 자바 ORM 표준 JPA 프로그래밍-김영한 지음

그런데 JPA를 사용하면 객체를 데이터베이스에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하는 것이 아니라 JPA가 제공하는 API를 사용하면 됩니다. 그러면 JPA가 알아서 적절한 SQL을 생성해서 데이터베이스에 전달합니다. 자바 ORM 표준 JPA 프로그래밍-김영한 지음

0개의 댓글