[2023-10-10] JPA에 대해 자세하게 공부하고싶어
[김영한] 자바 ORM 표준 JPA 프로그래밍 - 기본편 인프런 강좌 수강시작
섹션 0~2 핵심내용 정리
JPA?
- Java Persistence API
- 자바 진영의 ORM 기술 표준
ORM? - Object-relational mapping(객체 관계 매핑)
- 객체는 객체대로 설계
- 관계형 데이터베이스는 관계형 데이터베이스대로 설계
- ORM 프레임워크가 중간에서 매핑
- 대중적인 언어에는 대부분 ORM 기술이 존재
JPA 소개
1. EJB - 엔티티 빈(자바 표준)
2. JPA(자바 표준) -> 하이버네이트 (오픈 소스)
JPA를 왜 사용해야 하는가?
- SQL 중심적인 개발에서 객체 중심으로 개발
- 생산성
(기억할것) 수정: data set 후 트랜잭션의 commit 시점에 SQL이 수행된다. ( set -> persist 수행이 아님 X )
- 유지보수
- 패러다임의 불일치 해결
- 성능
- 데이터 접근 추상화와 벤더 독립성
- 표
JPA의 성능 최적화 기능
1. 1차 캐시와 동일성(identity) 보장
2. 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
(기억할것) persist, find, remove 등 수행시점에 SQL실행이 아닌 트랜잭션의 commit 시점에 SQL이 수행된다.
===> 나중에 나오게 될 영속성 관리(영속성 컨텍스트)의 쓰기 지연 SQL 저장소와 연관이 있음을 기억할 것.
(예외 - 심화과정) 기본키 생성의 @GeneratedValue IDENTITY 전략을 사용중에는 JPA 수행시점에 SQL 수행
3. 지연 로딩(Lazy Loading)
'JAVA > SpringBoot' 카테고리의 다른 글
[김영한] 자바 ORM 표준 JPA 프로그래밍 - 섹션 4. 엔티티 매핑 1~3 (0) | 2023.10.13 |
---|---|
[김영한] 자바 ORM 표준 JPA 프로그래밍 - 섹션 3. 영속성 관리 (내부 동작 방식) (0) | 2023.10.11 |
[SpringBoot] Jacoco 코드 작성 (0) | 2023.08.08 |
[SpringBoot] Jacoco 테스트 커버리지 설명 (0) | 2023.08.07 |
[SpringBoot] JUnit 테스트코드 - Service (0) | 2023.08.07 |