JPA

백종석·2022년 5월 21일
0

JPA

목록 보기
1/4
post-thumbnail

JPA란?

  • 서로 지양하는 바가 다른 2개 영역(객체지향 프로그래밍(OOP) 언어와 관계형 데이터베이스(SQL))을 중간에서 패러다임 일치를 시켜주기 위한 기술
    • 개발자객체지향적 프로그래밍을 하고,
    • JPA가 이를 관계형 데이터 베이스에 맞게 SQL을 대신 생성하고 실행
      -> 개발자는 항상 객체 지향적으로 코드를 표현할 수 있으니 더는 SQL에 종속적인 개발을 하지 않아도 된다.
      • 그렇기에 생산성이 향상되고 코드의 유지 보수가 편해지는 장점이 있다.

Spring Data JPA

  • JPA는 인터페이스로서 자바 표준명세서이다.

    • 인터페이스인 JPA를 사용하기 위해서는 구현체가 필요하고, 대표적으로 Hibernate, Eclipse Link 등이 있다.

    • 하지만 Spring에서 JPA를 사용할 때는 이 구현체들을 직접 다르지 않고 구현체들을 좀 더 쉽게 사용하고자 추상화시킨 Spring Data JPA라는 모듈을 이용하여 JPA 기술을 쓴다. 이들의 관계는 다음과 같다.

      JPA ← Hibernate ← Spring Data JPA

      실질적으로 Hibernate를 쓰는 것과 Spring Data JPA를 쓰는 것 사이에 큰 차이는 없다.

    • 이렇게 한 단계 더 감싸놓은 Spring Data JPA가 등장한 이유는 두가지가 있다.

      구현체 교체의 용이성
      저장소 교체의 용이성

    구현체 교체의 용이성

    • Hibernate 외에 다른 구현체로 쉽게 교체하기 위함

    저장소 교체의 용이성

    • 관계형 데이터베이스 외에 다른 저장소로 쉽게 교체하기 위함

profile
항해중인 우당탕탕 코린이

0개의 댓글