728x90
1.JPA 소개
- 목차
- 1.SQL 중심적인 개발의 문제점
- 2.JPA 소개
1.SQL 중심적인 개발의 문제점
- 무한반복 과 지루한 코드
- 객체 그래프 탐색이 안된다
- 계층 분할이 쉽지가 않다
- 데이터 접근 계층을 사용해서 SQL 을 숨겨도 어쩔수 없이 DAO 를 열어서 SQL 이 실행되는지 확인해야한다
- 엔티티를 신뢰할수 없다
2.JPA 소개
- ORM
- 객체 관계 매핑
- 객체는 객체대로 설계 , 관계형 DB는 관계형 DB 대로 설계
- ORM 프레임워크가 중간에서 매핑
- EJB -> 하이버네이트 -> JPA
JPA 를 사용해야 되는 이유
- SQL 개발 -> 객체중심 개발
- 생산성
- 저장 : persist(member)
- 조회 : find(memberId)
- 수정 : set("") - 원하는 값을 넣으면 알아서 Update 해준다
- 삭제 : remove(member)
- 유지보수
- 패러다임의 불일치 해결
- 상속
- 연관관계
- 객체그래프 탐색 (엔티티 신뢰)
- JPA 와 비교하기 - 동일한 트랜잭션에서 조회한 엔티티는 같음을 보장한다
- 성능
- 1차캐쉬와 동일성 보장
- 같은 트랜잭션 안에서는 같은 엔티티 반환
- 트랜잭션을 지원하는 쓰기 지연
- 트랜잭션을 커밋할때까지 INSERT SQL 을 모은다
- JDBC BATCH SQL 기능을 이용해서 한번에 SQL 전송
- 지연로딩
- 지연로딩 - 객체가 실제 사용될때 로딩
- 즉시로딩 - JOIN SQL 로 한번에 연관된 객체까지 미리 조회
- 1차캐쉬와 동일성 보장
- 데이터 접근 추상화와 벤더 독립성
- 표준
참고
728x90
'Back-End > Spring Data' 카테고리의 다른 글
3.영속성관리 - 내부동작방식 (0) | 2021.01.05 |
---|---|
2.JPA 시작하기 (0) | 2021.01.04 |
9.웹 계층 개발 2(주문) (0) | 2021.01.01 |
8.변경감지 와 병합 (0) | 2021.01.01 |
7.웹 계층 개발 1(회원,상품) (0) | 2021.01.01 |