이상준님, 정리하신 내용을 기반으로 JPA와 Spring Data JPA 개념을 초보자도 쉽게 이해할 수 있도록 보완 정리해드리겠습니다. 실생활 비유와 예제 코드, 요약표, 다음 학습 주제 제안도 포함하였습니다.


🧾 JPA란?

JPA(Java Persistence API)는

자바 객체와 데이터베이스 테이블을 매핑(ORM)하기 위한 자바의 표준 인터페이스입니다.

☕ 한 줄 정의

SQL을 직접 작성하지 않고도 자바 코드로 DB와 상호작용할 수 있게 해주는 ORM 기술


🧩 JPA의 주요 특징

특징 설명
ORM 지원 객체와 테이블 간 자동 매핑
JPQL SQL 유사한 객체 지향 쿼리 언어
CRUD 자동 제공 save(), findById() 등 기본 메서드
지연 로딩(LAZY) 필요한 시점에 데이터 로딩
영속성 컨텍스트 엔티티 생명주기 관리
변경 감지(Dirty Checking) 값을 바꾸면 자동 업데이트
트랜잭션 지원 일관된 데이터 처리 가능

🏠 실생활 비유

데이터베이스 = 창고

자바 객체 = 포장된 물건

JPA = 포장을 해주는 택배 시스템


🚀 Spring Data JPA란?

Spring Data JPA는 JPA를 더 쉽게 사용할 수 있도록 만든 Spring 프레임워크 기반의 확장 기술입니다.

🔧 Spring Data JPA 특징

특징 설명
리포지토리 추상화 인터페이스만 정의하면 구현체 자동 생성
메서드 이름 기반 쿼리 findByNameAndAge()와 같이 메서드 이름만으로 쿼리 가능
페이징 & 정렬 Pageable, Sort 지원
커스텀 JPQL 작성 직접 쿼리 작성도 가능 (@Query)
트랜잭션 자동 관리 @Transactional 기본 적용