[JPA] JPA

19·2022년 9월 5일
0

JPA

목록 보기
2/18

ORM (Object-relational mapping)

  • 객체는 객체대로 설계
  • 관계형 DB는 관계형 DB대로 설계
  • ORM 프레임워크가 중간에서 SQL 매핑을 담당해줌
    • 과거 개발자가 SQL 매핑을 해주던것을 ORM 프레임워크가 해 준다

JPA (Java Persistence API)

  • 자바 진영의 ORM 기술 표준

동작

  • JPA가 JDBC API를 사용해서 SQL를 작성
  • JPA에게 객체를 넘기면 JPA가 객체를 분석하고 적합한 쿼리를 만들어 날려준다

JPA를 사용해야 하는 이유

  • SQL 중심적인 개발에서 객체 중심적인 개발이 가능하다
  • 생산성 향상
    • CRUD를 간단한 메소드로 할 수 있다
    • 객체를 관계형 DB에서 넣고 뺄 때, 발생하는 SQL 매핑작업들을 JPA가 대신해준다
  • 유지보수
    • 필드가 변경되면 모든 SQL을 수정했어야 했는데, JPA 사용으로 필드가 변경되어도 관련 SQL 작성은 JPA가 담당한다.
  • 객체와 관계형 DB간의 패러다임 불일치 해결
    • 상속
      • 테이블은 상속 기능이 없어서 개발자가 여러 쿼리를 작성해야 했다 (JOIN등)
      • JPA가 관련된 여러 쿼리를 작성해준다. (INSERT INTO ITEM.. INSERT INTO ALBUM …)
    • 연관관계, 객체 그래프 탐색
      • 연관관계를 설정하고, 객체 그래프 탐색이 자유롭다



참고

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 김영한

profile
하나씩 차근차근

0개의 댓글