JPA는 자바 객체와 데이터베이스 간의 매핑(ORM)을 지원하는 자바 표준 인터페이스입니다.
SQL을 직접 작성하지 않고도 데이터베이스 작업이 가능하며 객체 중심의 프로그래밍과 관계형 데이터베이스 간의 불일치를 해결하는 데 중점을 둡니다.
@Entity 어노테이션을 통해 선언 @Entity
public class User {
@Id
@GeneratedValue
private Long id;
private String name;
// Getter, Setter
}
엔티티 객체 생성
EntityManager를 통한 데이터 저장
EntityManager em = ...;
em.persist(user); // 데이터 저장
영속성 컨텍스트 관리
변경 감지(Dirty Checking)
데이터베이스와 동기화
TypedQuery<User> query = em.createQuery("SELECT u FROM User u WHERE u.name = :name", User.class);
query.setParameter("name", "Alice");
List<User> results = query.getResultList();
JPA는 데이터베이스 작업을 단순화하면서 객체 중심 설계를 가능하게 합니다. 프로젝트에서 JPA를 적용하면서 직접 SQL을 작성하던 방식에서 벗어나 객체 중심으로 데이터를 처리하는 편리함을 느낄 수 있었습니다.
영속성 컨텍스트의 1차 캐시를 통해 데이터베이스 접근을 줄이고 변경 감지로 코드의 간결성을 유지하는 것이 인상 깊었습니다.
그러나 복잡한 쿼리나 성능 최적화가 중요한 경우에는 JPA의 동작 원리를 깊이 이해해야 한다는 점도 배우게 되었습니다.