JPA의 도입

신상현·2021년 2월 2일
0

Spring Boot와 JPA

목록 보기
2/16

ORM(Object-relational Mapping)


  1. 어플리케이션 설계는 객체 지향적으로 설계한다.
  2. 관계형 데이터베이스 또한 외래키를 활용해 설계한다.
  3. 서로 다른 두 패러다임의 불일치를 해소를 위해 ORM 기술을 사용한다.

JPA(Java Persistence API)


  • 현재 자바 진영의 ORM 기술에 대한 API 표준 명세다.
  • 인터페이스의 모음집이다.
  • 따라서, JPA 사용 시 특정 구현 기술에 대한 의존도를 줄일 수 있다.
  • 그러면, JPA를 구현한 ORM 프레임워크를 선택해야한다.
  • Hibernate는 대표적인 JPA 구현체이다.

JPA는 어플리케이션과 JDBC API 사이에서 작동한다.

기존 문제 해결


반복적 CRUD 코드 작성이 줄어든다.

  • 메소드를 통해서 객체를 DB에 저장한다.

SQL을 직접 다루지 않는다.

  • 객체를 데이터 베이스에 저장할 때, JPA가 제공하는 API를 사용한다.
  • 그러면 이후에 JPA가 적절한 SQL을 생성해서 데이터베이스에 전달한다.

객체 그래프 탐색

  • 어플리케이션 단에서 작성된 필드만 보고, 탐색 범위를 알 수 있다.
  • 연관된 객체를 사용하는 시점에 적절한 SQL을 실행한다.
  • 지연 로딩이라고 한다.

동일성 보장

  • JPA는 같은 트랜젝션일 때, 같은 객체가 조회 되는 것을 보장한다.
  • 동등성 뿐만 아니라, 동일성을 보장한다.
profile
개발자 싱상형

0개의 댓글