1. SQL 중심적인 개발의 문제점
- 반복되는 CURD
- **패러다임의 불일치**
- 객체 vs 관계형 데이터베이스
- 객체를 관계형 데이터베이스에 저장
- 탐색시 처음 실행하는 SQL에 따라 탐색 범위가 지정
-
select M.*, T.* from Member M join Team T on M.id = T.id member.getTeam(); //OK member.getOrder(); //null 조인 되지 않은 값은 가져올 수 없음 - 엔티티 신뢰 문제
- 모든 객체를 미리 로딩할 수는 없음 -> 상황에 따라 동일한 회원 조회를 여러번 진행
2. JPA 사용 이유
- 생산성 -> CURD 보다 간단
- 유지보수 용이
- **패러다임의 불일치 해결**
- 동일한 트랜잭션에서 조회한 엔티티는 같음을 보장
- 성능 최적화
- 1차캐시, 동일성 보장
- 지연로딩 / 즉시로딩
- 쓰기지연
출저 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 / 김영한