엔티티 매니저에 대해 설명해 주세요.

2024. 11. 30. 10:07·백엔드 면접

엔티티 매니저를 설명하기 위해서는 먼저 영속성 컨텍스트에 대한 설명이 필요합니다. 영속성 컨텍스트는 엔티티를 영구 저장하는 환경으로 1차 캐시, 쓰기 지연, 변경 감지 등을 통해 영속 로직을 효율적으로 할 수 있게 해 줍니다. 이러한 효율적인 영속 로직 수행을 위해서 엔티티는 영속성 컨텍스트에 관리되어야 합니다. 

이런 작업을 도와주는 것이 엔티티 매니저입니다. 엔티티 매니저는 엔티티의 상태를 변경하고, 영속성 컨텍스트와 상호작용 함으로써 영속 로직을 수행하는 역할을 가지고 있습니다.

 


조금 더 구체적으로 엔티티 매니저의 역할을 설명해 주세요.

엔티티는 영속성 컨텍스트와 관련하여 4가지 상태를 가질 수 있습니다. 엔티티 매니저는 persist, merge, remove, close 등의 메서드를 사용해 엔티티의 상태를 변경할 수 있습니다. 또한, 엔티티 매니저는 영속성 컨텍스트의 1차 캐시로부터 엔티티를 조회할 수 있으며, 쓰기 지연 저장소에 있는 쿼리들을 flush하여 데이터베이스와 동기화시킬 수 있습니다. 또한 JPQL이나 Native Query를 이용해 직접 데이터베이스로부터 데이터를 불러올 수도 있습니다.

 


 

엔티티의 각 상태에 대해서 설명해 주세요.

영속성 컨텍스트에서 엔티티는 비영속, 영속, 준영속, 삭제 상태를 가질 수 있습니다.

 

비영속 상태는 엔티티 객체가 새로 생성되어 아직 영속성 컨텍스트와 연관되지 않은 상태입니다. 이 상태에서는 데이터베이스와 전혀 관련이 없으며, 엔티티 객체는 메모리 상에만 존재합니다.

 

영속 상태는 엔티티 객체가 영속성 컨텍스트에 관리되고 있는 상태입니다. 이 상태에서는 엔티티의 변경 사항이 자동으로 데이터베이스에 반영됩니다.

 

준영속 상태는 엔티티 객체가 한 번 영속성 컨텍스트에 의해 관리되었지만, 현재는 영속성 컨텍스트와 분리된 상태입니다. 이 상태에서는 엔티티 객체의 변경 사항이 더 이상 데이터베이스에 반영되지 않습니다. 영속성 컨텍스트 종료, 트랜잭션 종료 등으로도 준영속 상태로 전환됩니다.

 

삭제 상태는 엔티티 객체가 영속성 컨텍스트에서 제거된 상태입니다. 이 상태에서는 엔티티 객체가 데이터베이스에서 삭제됩니다.

'백엔드 면접' 카테고리의 다른 글

Checked Exception과 Unchecked Exception에 대해서 설명해 주세요.  (0) 2024.12.01
JPA의 N + 1 문제에 대해서 설명해 주세요.  (0) 2024.11.30
JPA의 ddl-auto 옵션에 대해서 설명해 주세요.  (0) 2024.11.29
Spring Data JPA에서 새로운 Entity인지 판단하는 방법은 무엇일까요?  (0) 2024.11.29
@Value 어노테이션 사용 시 주의할 점을 설명해 주세요.  (0) 2024.11.28
'백엔드 면접' 카테고리의 다른 글
  • Checked Exception과 Unchecked Exception에 대해서 설명해 주세요.
  • JPA의 N + 1 문제에 대해서 설명해 주세요.
  • JPA의 ddl-auto 옵션에 대해서 설명해 주세요.
  • Spring Data JPA에서 새로운 Entity인지 판단하는 방법은 무엇일까요?
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데브코스
    스프링
    오블완
    백엔드 면접
    티스토리챌린지
    JPA
    자바
    raid
    토스 페이먼츠
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
엔티티 매니저에 대해 설명해 주세요.
상단으로

티스토리툴바