본문 바로가기

개발/Spring

[SpringBoot] JPA

 

 

  • 관계형 데이터베이스: 어떻게 데이터를 저장할지 초점
  • 객체지향 프로그래밍 언어: 기능과 속성을 한 곳에서 관리 -> 객체를 데이터베이스에 저장하려고 할 때 패러다임 불일치 발생
  • 상속, 1:N 등 다양한 객체 모델링을 데이터베이스로 구현할 수 없음-> 데이터베이스 모델링에 집중됨

 

JPA

  • 객체지향적인 프로그래밍을 관계형 데이터 베이스에 맞게 SQL을 대신 생성하여 실행
  • SQL에 종속적인 개발 감소
  • Java Persistence API 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스

 

 

Hibernate

  • JPA 구현체
  • JPA의 인터페이스를 구현한 라이브러리

 

 

 

Spring Data JPA

  • Hibernate, Eclipse Link 등 JPA 구현체를 더 쉽게 사용하고자 추상화
  • JPA <- Hibernate <- Spring Data JPA
  • 매핑을 통해 구현체/저장소 교체 용이
  • Repository 인터페이스 제공