JPA 프로그래밍 -1장 JPA 소개

Untitled·2022년 6월 26일
0

JPA

목록 보기
1/1

JPA를 한번도 사용해본 적이 없어서 아예 백지로 시작하는 책!
그동안 사용했던 JDBC , Mybatis 와 비교하며 읽도록 해야겠습니다.

패러다임 불일치

 객체와 관계형 데이터베이스가 지향하는 목적이 서로 다를 때 생기는 문제

최근에는 객체 형태로 DATA를 받아오기 보다 map 형태로 받다 보니 이런 고민을 해본 적이 없었다...

1. 상속

RDB에서는 객체 개념을 표현할 수가 없기에 이를 위해 개발자가 따로 처리를 해줘야한다. 유사하게 DB를 설계해도 상속된 객체를 받아오기 위해서는 따로 분해해서 SQL을 생성해야하는 불편함이 있다.

2. 연관관계

첫번째로 객체는 참조가 있는 방향으로만 조회가 가능해지고 반대는 불가능해진다.
객체는 외래키가 필요 없고 테이블은 참조가 필요없으니 따로 처리를 해줘야한다.

3. 객체 그래프 탐색

연관된 객체 그래프를 탐색하는 방향도 애매하고 어디까지 탐색이 가능해야하는지도 DAO코드를 열어 SQL 코드를 직접 확인해야한다.
따라서 상황에 따라 메소드를 정의하여 사용해아함!

4. 비교

DB는 row로 비교 객체는 동등성으로 비교한다.
따라서 똑같은 row를 따로 객체를 만들어 생성해 비교해도 서로다른 두 객체라고 판단하는 문제점이 있을 수 있다.

따라서 JPA 는 패러다임의 불일치를 극복해주고 정교한 객체 모델링을 유지시켜주며 DB와 객체 서로 해야할일에 집중할 수 있게 해준다.

JPA란 무엇인가

하이버네이트 기반으로 만들어진 새로운 자바 ORM 표준

[참조] https://velog.velcdn.com

사진을 보면 DB 직접 접근이 필요 없고 객체와 테이블 사이의 관계를 알아서 처리해준다.
또한 특정 DB에 종속되지 않아 벤더 독립성을 지킬 수 있다.

https://docs.spring.io/spring-data/data-jpa/docs/
-> 최근에는 3.X.X 버전까지 나온 것으로 확인된다.

profile
그저 그런 꾸준히 하고만 싶은 개발자 이야기

0개의 댓글