본문 바로가기
Back-End/Spring Data

1.JPA 소개

by 두두리안 2021. 1. 4.
728x90

1.JPA 소개

  • 목차
    • 1.SQL 중심적인 개발의 문제점
    • 2.JPA 소개

1.SQL 중심적인 개발의 문제점

  • 무한반복 과 지루한 코드
  • 객체 그래프 탐색이 안된다
  • 계층 분할이 쉽지가 않다
  • 데이터 접근 계층을 사용해서 SQL 을 숨겨도 어쩔수 없이 DAO 를 열어서 SQL 이 실행되는지 확인해야한다
  • 엔티티를 신뢰할수 없다

2.JPA 소개

  • ORM
    • 객체 관계 매핑
    • 객체는 객체대로 설계 , 관계형 DB는 관계형 DB 대로 설계
    • ORM 프레임워크가 중간에서 매핑

image

  • EJB -> 하이버네이트 -> JPA

JPA 를 사용해야 되는 이유

  • SQL 개발 -> 객체중심 개발
  • 생산성
    • 저장 : persist(member)
    • 조회 : find(memberId)
    • 수정 : set("") - 원하는 값을 넣으면 알아서 Update 해준다
    • 삭제 : remove(member)
  • 유지보수
  • 패러다임의 불일치 해결
    • 상속
    • 연관관계
    • 객체그래프 탐색 (엔티티 신뢰)
    • JPA 와 비교하기 - 동일한 트랜잭션에서 조회한 엔티티는 같음을 보장한다
  • 성능
    • 1차캐쉬와 동일성 보장
      • 같은 트랜잭션 안에서는 같은 엔티티 반환
    • 트랜잭션을 지원하는 쓰기 지연
      • 트랜잭션을 커밋할때까지 INSERT SQL 을 모은다
      • JDBC BATCH SQL 기능을 이용해서 한번에 SQL 전송
    • 지연로딩
      • 지연로딩 - 객체가 실제 사용될때 로딩
      • 즉시로딩 - JOIN SQL 로 한번에 연관된 객체까지 미리 조회
  • 데이터 접근 추상화와 벤더 독립성
  • 표준

참고

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

image

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