웹 애플리케이션의 핵심은 데이터를 저장하고 불러오는 것입니다. JPA(Java Persistence API)를 사용하면 복잡한 SQL 쿼리를 직접 작성할 필요 없이, 자바 객체(Entity)와 DB 테이블을 매핑하여 객체 지향적인 방식으로 데이터베이스를 조작할 수 있습니다.
JPA 구성 요소
역할 및 어노테이션
Entity (엔티티)
DB 테이블과 1:1로 매칭되는 자바 클래스입니다. @Entity, @Id, @GeneratedValue 등을 사용합니다.
Repository (리포지토리)
엔티티를 DB에 저장하고 조회하는 메서드를 제공하는 인터페이스입니다. JpaRepository를 상속받기만 하면 기본 CRUD가 완성됩니다.
실전 코딩: 엔티티와 리포지토리 생성
Member.java & MemberRepository.java
// 1. Entity: DB의 'member' 테이블과 매핑됨
package com.minstudio.demo.entity;
import jakarta.persistence.*;
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; // 기본키 (PK)
@Column(nullable = false)
private String name;
// 생성자, Getter, Setter 생략 (실무에선 주로 Lombok @Getter 사용)
}
// 2. Repository: JpaRepository 상속만으로 CRUD 쿼리 자동 생성
package com.minstudio.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.minstudio.demo.entity.Member;
public interface MemberRepository extends JpaRepository {
// 이제 findAll(), save(), findById() 등을 사용할 수 있습니다!
}
JPA Console Log
Hibernate: create table member (id bigint generated by default as identity, name varchar(255) not null, primary key (id))