-
[JPA] 등장 배경, 개념 정리DEV/JPA 2024. 2. 11. 02:37
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다.
강의 : 인프런 <자바 ORM 표준 JPA 프로그래밍 기본편>
교육자 : 김영한
JPA 등장 배경
* SQL 중심적인 개발의 문제점
CRUD → 무한 반복, 지루한 코드
관계형 DB → SQL에 의존적인 개발을 피하기 어려움
그러나, 현실적인 대안은 관계형 데이터베이스이며, 다음과 같은 패러다임의 불일치가 존재.
* 객체와 관계형 데이터베이스의 차이- 상속의 유무
- 연관 관계
- 객체 : 참조 사용 (ex. member.getTeam() )
- 테이블 : 외래키 사용 (ex. JOIN ON T.TEAM_ID = M.TEAM_ID )
- 데이터 타입
- 객체 != 컬럼
- 데이터 식별 방법
- 같은 식별자를 통해 DB에서 조회하여 담은 객체는 서로 다름
- 객체 != 객체
JPA란?- JAVA Persistence API
- 자바 진영의 ORM 기술 표준
- JAVA 애플리케이션과 JDBC 사이에서 동작하는 인터페이스
ORM이란?- Object-relational mapping (객체 관계 매핑)
- 객체와 데이터베이스 중간에서 매핑하는 역할
JPA 사용이유 (장점)
- SQL중심에서 객체중심 개발이 가능해짐
- 생산성 good. 쿼리가 다 만들어져있어서 불러서 쓰면됨.
- 저장 : persist()
- 조회 : find()
- 수정 : setter method
- 삭제 : remove()
- 유지보수 good. 기존에는 필드 변경시 쿼리도 다 수정해야함 → JPA는 필드만 추가하면 됨
- 객체와 관계형DB 패러다임의 불일치 해결
- 동일한 트랙잭션에서 조회한 엔티티는 같음을 보장
JPA 성능 최적화 기능
- 1차 캐시와 동일성 보장
- 트랜잭션을 지원하는 쓰기 지연
- 지연로딩과 즉시로딩 : 옵션 하나로 최적화 가능
'DEV > JPA' 카테고리의 다른 글
[JPA] 다양한 연관 관계 매핑 ( N:1 / 1:N / 1:1 / N:M ) (1) 2024.04.04 [JPA] 연관관계 매핑 기초 (0) 2024.03.29 [JPA] 엔티티 매핑 (0) 2024.03.07 [JPA] 영속성 관리 (0) 2024.02.22 [JPA] 시작하기, 기본 설정 (0) 2024.02.14