JPA 학습 중요도 정리

Hyeok·2025년 2월 19일

🔥필수

1. 기본 개념 & 엔티티 매핑

  • JPA 개념과 동작 원리 (EntityManager, Persistence Context, 1차 캐시)
  • @Entity, @Table 등 엔티티 매핑
  • 필드 매핑 (@Column, @Id, @GeneratedValue)
  • 연관관계 매핑 (@OneToOne, @OneToMany, @ManyToOne, @ManyToMany)
  • @Embeddable, @Embedded (값 타입 매핑)

💡JPA는 객체를 DB에 매핑하는 기술이다.

2. 영속성 컨텍스트 & 트랜잭션 관리

JPA가 변경 감지(Dirty Checking), 1차 캐시, 지연 로딩(Lazy Loading) 등을 다루는 핵심 메커니즘임.

  • 영속성 컨텍스트(Persistence Context)
    • persist(), merge(), remove(), detach(), flush()
  • 트랜잭션 개념 & @Transactional 활용
  • 변경 감지 (Dirty Checking)
  • 플러시(Flush)와 커밋(Commit)
  • 준영속 상태 (detach(), clear(), close())

💡JPA는 트랜잭션 단위에서 동작하며, 변경 감지를 통해 자동으로 DB에 반영한다.

⚡중요

3. 연관관계 매핑 & Fetch 전략

엔티티 간 관계를 제대로 이해해야 실무에서 성능 문제를 피할 수 있음.

  • @ManyToOne (N:1) & @OneToMany (1:N)
  • @OneToOne, @ManyToMany
  • 단방향 vs 양방향 매핑 (양방향 매핑 시 mappedBy 주의)
  • Fetch 전략 (LAZY, EAGER)
  • cascade와 orphanRemoval

💡 연관관계 매핑에서 Fetch 전략을 잘못 설정하면 성능 이슈가 발생한다. 기본적으로 @ManyToOne → LAZY, @OneToMany → LAZY 설정 추천

4. JPQL & Query Methods

JPA에서 DB와 직접 통신하는 쿼리 관련 기능들

  • findById(), findAll(), save(), delete() 같은 기본 메서드
  • JPQL (JPA Query Language)
  • @Query를 이용한 커스텀 쿼리 작성
  • NamedQuery & Native Query

💡 JPA는 기본적으로 객체 중심이지만, 복잡한 조회는 결국 SQL처럼 해야 한다

🎯 심화

성능 최적화 및 기타 고급 기능 학습

profile
공부하면서 정리한 블로그입니다. 혹시 잘못된 내용이 있다면 댓글로 알려주시면 큰 도움이 됩니다. 감사합니다!

0개의 댓글