스프링 데이터 JPA란?

구본식·2023년 2월 3일
1

Spring Data JPA

목록 보기
1/8
post-thumbnail
post-custom-banner

들어가기에 앞서

ORM 이란?

  • Object-relational Mapping이라 하며 객체와 관계형 데이터베이스를 매핑해주는 기술이다.
  • 객체는 객체대로 설계하고 관계형 데이터베이스(RDB)는 관계형 데이터베이스대로 설계하고 난 뒤, ORM 프레임워크가 중간에서 매핑시켜준다.

JPA란?

  • JAVA 진영에서 ORM기술을 사용하기 위한 인터페이스의 모음이다.!
  • 인터페이스 이기 때문에 Hibernate,EclipseLink 등 여러 구현제가 존재한다.

JPQL이란?

  • 엔티티 중심의 객체를 조회하는 객체지향 쿼리이다.
  • 테이블이 아닌 객체를 검색하는 객체지향 쿼리.
  • SQL을 추상화 시켰기 때문에 특정 벤더(DB)에 종속적이지 않다.
  • JPA는 JPQL을 분석하여 SQL를 생성하게 된다.

JPA를 왜사용해야 하는가?

  • SQL 중심개발에서 객체 중심개발을 할 수 있다.
  • 객체 중심개발이기 때문에 생산성과 유지 보수도 수월해진다.
  • 패러다임의 불일치 해결
    예를 들어 부모클래스자식클래스의 관계인, 상속관계가 존재하는데 데이터베이스에도 상속 기능이 있지만 객체 상속관계는 지원하지 않는다. 이러한 문제들을 JPA는 해결

추가적인 JPA에 관한 지식과 기능들은 아래 깃허브에 학습한 내용들을 간단히 정리해놓았다.
https://github.com/BonSik-Koo/Backend_study


스프링 데이터 JPA란?

  • Spring Data JPAJPA를 더 쉽게 사용하기 위해 스프링에서 제공하는 모듈이다.

  • Spring Data JPAJPA를 한단계더 추상화시켜 스프링이 제공해주는 인터페이스만 상속하여 사용하기만 하면 스프링이 미리 정의해논 구현클래스를 프록시 객체로 자동으로 넣어주게 된다.

  • Spring Data JPA는 Hibernate와 같은 JPA구현체를 사용한다.

간단하게 구조를 살펴보게 되면 아래와 같다.

profile
백엔드 개발자를 꿈꾸며 기록중💻
post-custom-banner

0개의 댓글