[JPA] JPA 정리 - 1_Keywords

매림·2022년 8월 18일

myRecord

목록 보기
6/6
post-thumbnail

ORM이란?

Object-Relational Mapping(객체 관계 매핑)
: 프로그래밍 기술 중 하나로, 데이터베이스와 객체지향 언어를 연결해주는 다리(Bridge)와 같은 것!

__왜 ORM이 필요한가?

  • 객체지향 시스템으로 작업을 하게되면, 객체지향적으로 생성된 객체들과 관계형 데이터베이스 간에 패러다임 불일치(mismatch)가 일어난다.
    그 이유는,
    • RDBMSs(Relational DataBase Management System)은 표 형식으로 데이터를 표현하고,
    • 객체지향언어(예. Java)는 클래스를 사용하여 객체들 간에 연관관계 등으로 데이터를 표현하게 되기 때문이다.

따라서, 이렇게 데이터의 표현방법이 다른 둘 사이를 맵핑해주어 불일치를 해결해주기 위해 ORM 프레임워크가 필요한 것!


JPA란?

Jakarta Persistence API(구 Java Persistence API)
: 자바 진영의 ORM 기술 표준

__JPA는 기술명세서!

JPA인터페이스이기 때문에 이 자체로는 구현이 불가하다. 즉, Hibernate, EclipseLink 등과 같은 구현체를 통해서 이 JPA의 구현이 가능하다.


간단하게, JPA는 객체지향 언어로 설계된 객체들을 이용해 관계형 데이터베이스를 관리하기 위한 방법을 정의해둔 기술명세서!

이 기술명세서를 바탕으로 구현된 프레임워크(Framework)들이 Hibernate, EclipseLink 등이다.

🔖 그렇다면 Spring Data JPA란 뭘까?
: Hibernate와 같은 프레임워크라고 생각할 수 있지만, Spring Data JPA는 그저 개발자가 JPA를 더 쉽고 편리하게 사용할 수 있도록 Spring에서 제공하는 모듈 중 하나이다. 이 모듈은 repository를 기반으로 JPA를 추상화하여 데이터를 영속화하기 위해 필요했던 많은 코드의 양을 줄여줌으로 개발자가 편리하게 데이터를 관리할 수 있게 해준다.

  • 추상화의 의미는 "복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다." - 위키백과 '추상화(컴퓨터과학) 내용 발췌

0개의 댓글