ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JPA] 등장 배경, 개념 정리
    DEV/JPA 2024. 2. 11. 02:37

    * 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다.

     

    강의 : 인프런 <자바 ORM 표준 JPA 프로그래밍 기본편>

    교육자 : 김영한


    JPA 등장 배경

    * SQL 중심적인 개발의 문제점
    CRUD → 무한 반복, 지루한 코드
    관계형 DB SQL에 의존적인 개발을 피하기 어려움

    그러나, 현실적인 대안은 관계형 데이터베이스이며, 다음과 같은 패러다임의 불일치가 존재.

    * 객체와 관계형 데이터베이스의 차이

    1. 상속의 유무
    2. 연관 관계
      • 객체 : 참조 사용 (ex. member.getTeam() )
      • 테이블 : 외래키 사용 (ex. JOIN ON T.TEAM_ID = M.TEAM_ID )
    3. 데이터 타입
      • 객체 != 컬럼
    4. 데이터 식별 방법
      • 같은 식별자를 통해 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

    댓글

Designed by Tistory.