Spring의 ORM표준 JPA

이원찬·2023년 12월 8일
0

Spring

목록 보기
1/13
post-custom-banner

Java진영 ORM 표준인 JPA에 대해 설명한다.

SQL 중심적인 개발의 문제점

ORM 탄생배경

요즘은 객체지향으로 모든 프로그램을 만드려한다.

데이터를 저장하고 빠르게 읽어오기 위해 데이터베이스를 사용하는데 사용되는 데이터 베이스의 대부분은 RDB(관계형데이터베이스)이다.

객체를 관계형 데이터 베이스에 빠르게 저장하는 방법이 없을까? (ORM의 탄생배경)

SQL 중심적인 개발의 문제점

  • 무한 반복, 지루한 코드 (CRUD)
  • SQL 의존적인 개발을 피하기 어렵다
  • 패러다임의 불일치

객체와 관계형 데이터베이스의 차이

객체

객체는 참조를 이용해 연관관계를 표현한다.

class A{
	B b = new B();
}

A a = new A();
a.b 처럼 '.'으로 연관관계에 있는 객체에 접근 가능하다.


데이터 베이스

하지만 데이터 베이스는 FK로 연관관계를 표현한다.

A 테이블

A_IDFK_B_ID

B 테이블

B_IDNAME

만약 A에서 B를 접근 하고 싶다면

select * from A join B on A.FK = B_ID

객체는 참조를 통해

데이터 베이스는 FK를 통해

객체 그래프 탐색이란?

객체는 자유롭게 객체 그래프를 탐색할 수 있어야 한다.

'.'을 찍어서 연관된 객체를 탐색하는 것을 객체 그래프 탐색이라 한다

JPA란?

Java Persistence API로
인터페이스의 모음이다.

  • 자바 진영의 ORM 기술 표준
  • 애플리케이션과 JDBC 사이에서 동작

ORM?

Object-relational mapping 으로
객체는 객체스럽게 설계하고
테이블은 테이블 스럽게 설계한다.

여기서 객체와 테이블을 매핑해 주는 것이 ORM이다.

https://studio108.tistory.com/23
https://velog.io/@chois90/Spring-ORM-JPA-%EA%B4%80%EB%A0%A8-%EC%A0%95%EB%A6%AC
https://uchupura.tistory.com/134

profile
소통과 기록이 무기(Weapon)인 개발자
post-custom-banner

0개의 댓글