Jpa


title: 2026-04-14 author: 강병호 (이름) date: 2026-04-14 (날짜) category: TIL/강병호/2026/04 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —

JPA (Java Persistence API)

  • 성격: 자바 진영의 ORM(Object-Relational Mapping) 기술 표준 명세(Specification)입니다.
  • 역할: “자바 객체와 DB 테이블을 이렇게 연결하라”는 가이드라인이자 인터페이스 모음입니다.
  • 특징: 실체가 없는 ‘서류’와 같습니다. EntityManager와 같은 인터페이스를 정의하지만, 스스로 데이터를 저장하는 기능은 없습니다.

Hibernate

  • 성격: JPA라는 명세를 실제로 코드로 구현한 구현체(Implementation)입니다.
  • 역할: JPA 인터페이스를 상속받아 실제로 DB에 쿼리를 날리고 데이터를 가져오는 핵심 엔진 역할을 합니다.
  • 특징: 가장 대중적인 구현체이며, 필요에 따라 EclipseLink나 DataNucleus 같은 다른 구현체로 갈아끼울 수 있습니다.

Spring Data JPA

  • 성격: JPA를 더 쉽고 편하게 사용할 수 있도록 스프링에서 제공하는 추상화 모듈입니다.
  • 역할: 개발자가 Repository 인터페이스만 선언하면, 실행 시점에 적절한 구현체(Bean)를 자동으로 생성해 줍니다.
  • 특징: 내부적으로는 여전히 JPA와 Hibernate를 사용합니다. 예를 들어, SimpleJpaRepository 클래스는 내부에서 JPA의 EntityManager를 호출하여 동작합니다.

results matching ""

    No results matching ""