HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
🚀
[2기 - 레이] 9주차 RBF
/
키워드 관련 작성 - 류영준

키워드 관련 작성 - 류영준

 
  • JPA
    • Java Persistence API
    • 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • 영속성 컨텍스트
    • EntityManagerFactory
      • 엔티티매니저를 생성하기 위한 클래스
      • 하나만 생성해서 애플리케이션 전체에서 공유해야 함
    • EntityManager
      • 엔티티를 관리하는 역할을 수행하는 클래스
      • 엔티티 매니저 내부에 영속성 컨텍스트라는 걸 두어서 엔티티들을 관리한다.
    • 영속성컨텍스트
      • 모든 엔티티매니저가 초기화 및 종료되지 않은 한 엔티티를 영구히 저장하는 환경
    • 엔티티 생명주기
      • 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태
        • 엔티티 객체를 생성했을 때 아직 저장하지 않은 순수한 객체 상태
        • 영속성 컨텍스트나 데이터베이스와는 전혀 관련이 없는 순수한 객체 상태
      • 영속(managed) : 영속성 컨텍스트에 저장된 상태
        • 영속성 컨텍스트에 의해 관리됨
        • persist() : EntityManager를 통해 엔티티를 영속성 컨텍스트에 저장한 상태
        • find(), JPQL을 사용해서 조회한 엔티티도 영속성 컨텍스트가 관리
      • 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태
        • detach()로 영속성 컨텍스트가 관리하던 엔티티를 영속성 컨텍스트가 관리하지 않게 함
        • close()로 영속성 컨텍스트를 닫음
        • clear()로 영속성 컨텍스트를 초기화함
      • 삭제(removed) : 삭제된 상태
        • remove()를 호출하는 순간 엔티티를 영속성 컨텍스트와 데이터베이스에서 삭제
        • 이렇게 삭제된 엔티티는 재사용하지 말고 자연스럽게 가비지 컬렉션의 대상이 되도록 두는 게 좋음
  • 엔티티 매핑
    • @Entity 애노테이션이 붙은 클래스 = 엔티티
  • 연관관계 매핑
  • 고급매핑
  • 프록시
    • 지연 로딩 기능을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라고한다.