2021.12.22

초보개발·2021년 12월 22일
0

TIL

목록 보기
2/17


스프링 프레임워크를 공부를 끝내고, 새롭게 들어간 자바 ORM 표준 JPA 프로그래밍을 들으면서 알게된 내용들을 정리해보자 한다. 먼저 JPA를 설명하기 전에 ORM에 대해서 알아보자면,

ORM(Object-relational mapping)

기존 객체와 관계형 데이터베이스 사이에 있는 패러다임 불일치를 해결하기 위해 생겨났다. ORM은 객체 관계 매핑이라고 하며, 객체(Object)와 관계형 데이터베이스(RDB)의 매핑을 시켜주는 프레임워크이다.

  • 객체는 객체대로 설계
  • 관계형 데이터베이스는 관계형 데이터베이스대로 설계
  • 대부분 알고있는 언어들은 ORM 기술이 존재한다.

JPA(Java Persistence API)


ORM을 사용할 수 있는 인터페이스들의 모음이며, 마치 자바 컬렉션에 저장하고 꺼내는 것처럼 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.

  • 애플리케이션과 JDBC 사이에서 동작한다.
  • 개발자가 직접 JDBC API를 호출해서 사용하는 것이 아니라 JPA에게 명령을 하면 JDBC API를 사용해서 SQL로 DB에 접근한 다음, 결과를 가져와 준다.
  • 캐시를 사용하기 때문에 같은 트랜잭션에서 조회한 엔티티는 항상 똑같다.
  • ORM에 대한 자바 API 규격
    • 구현체 : Hibernate, EclipseLink, DataNucleus 등
  • CRUD
    • 저장 : jpa.persist(member)
    • 조회 : Member member = jpa.find(memberId)
    • 수정 : member.setName("변경할 이름")
    • 삭제 : jpa.remove(member)
  • 성능 최적화
    • 1차 캐시와 동일성(identity) 보장
    • 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
    • 지연 로딩(Lazy loading)

0개의 댓글