Spring Data JPA 개념

jadive study·2022년 11월 16일

2.3 Spring Data JPA의 소개

'Spring Data JPA'라는 것에 대해서 알아보고, 이를 활용하는 방법에 대한 학습 입니다. JPA(java Persistence API)는 Java 언어를 통해서 데이터베이스와 같은 영속 계 층을 처리하고자 하는 스펙입니다. JPA를 이해하기 위해서는 우선은 ORM(Object- Relational Mapping)이라는 기술에 대해서 먼저 설명해야만 합니다.

ORM 과 JPA

ORM(Object Relational Mapping)은 단어에서 보듯이 객체지향과 관련이 있습니다
ORM은 간단히 말하자면 '객체지향 패러다임을 관계형 데이터베이스에 보존아는 기술'이라고 할 수 있습니다.
패러다임 입장에서 생각하자면 '객체지향 패러다임을 관계형 패러다임으로 매핑(mapping)해 주는 개념'

객체지향의 구조가 관계형 데이터베이스'와 유사하다는점에서 시작합니다. 객체지향 언어 중에서 ’클래스(Class)’를 사용하는 언어는 특히 그러 한 경 우인데 예를 들어 '클래스' 장치를 사용하는 객체지향 프로그래밍 언어들은 어떠한 데이터의 구조를 잡기 위해서 우선적으로 클래스를 설계한다.

데이터베이스와 클래스 비교

  • ’테이블(Table)를 설계한다. 새로운 테이블에는 칼럼을 정의하고 칼럼에 맞는 데이터 타입올 지정해서 데이터를 보관하는 를 만든다는 의미에서 클래스와 상당히 유사합니다.
public class Member{
	private String id;
    private String pw;
    private String name;
    }

ERD와 클래스 다이어그램

객체지향에서는 클래스에서 인스턴스를 생성해서 인스턴스라는 '공간에 데이터를 보관하는데, 테이블에서는 하나의 ’Row’에 데이터를 저장하게 됩니다.
여기서의 유일한 차이는 '객체'라는 단어가 '데이터 + 행위(메서드)라는 의미라면 'Row'는 '데이터만을 의미한다는 점이 다를 뿐입니다(데이터베이스에서는 개체(entity)'라는 용어를 사용합니다.

관계(relation)'와 '참조(reference)'

-관계형 데이터베이스

테이블 사이의 관계를 통해서 구조적인 데이터를 '표현한다면,객체지향에서는 참조'를 통 해서 어떤 객체가 다른 객체들과 어떤 관계를 맺고 있는지를 표현한다.

ORM의 시작-'객체지향을자동으로 관계형 데이터베이스에 맞게’ 처리해 주는 기법
-객체지향과 관계형’사이의 변환 기법

JPA- ORM을Java 언어에 맞게 사용하는 '스펙'입니다. 따라서 ORM이 좀 더 상위 개념이 되고,JPA는 Java라는 언어에 국한된 개념

가장 유명 한 것은 Hibernate framework

• JPA를 통해서 관리하게 되는 객체(이하 엔티티객체(Entity Object))를 위한 엔티티 클래스
• 엔티티객체들을 처리하는 기능을 가진 Repository

Repository-Spring Data JPA에서 제공하는 인터페이스로 설계하는데 스프 링 내부에서 자동으로 객체를 생성하고 실행하는 구조

Spring Data JPA- 자동으로 생성되는 코드를 이용하므로 단순 CRUD나 페이지 처리 등의 개발에 코드를 개발하지 않아도 된다.

profile
개발 메모창고

0개의 댓글