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나 페이지 처리 등의 개발에 코드를 개발하지 않아도 된다.
'취준 note 2023 > spring' 카테고리의 다른 글
컨트롤러와 RESTAPI (0) | 2023.01.21 |
---|---|
SOLID 단일 책임 원칙 (0) | 2022.11.22 |
JpaRepository 2 (0) | 2022.11.17 |
엔티티 클래스 작성,JpaRepository 기본 (0) | 2022.11.17 |
spring boot 기초 완벽 정리 + 컨트롤러 api (0) | 2022.11.14 |