백엔드 개발 · 중급
JPA의 영속성 컨텍스트(Persistence Context)란 무엇이며, 1차 캐시의 역할은 무엇인가요?
힌트 · 엔티티의 생명주기와 영속성 컨텍스트의 관계를 설명해보세요.
영속성 컨텍스트엔티티 매니저1차 캐시동일성 보장쓰기 지연
모범답안
JPA의 영속성 컨텍스트는 엔티티를 영구 저장하기 전에 잠시 보관하는 논리적인 영역입니다. 엔티티 매니저를 통해 접근하며, 엔티티의 생명 주기를 관리하는 역할을 합니다.
1차 캐시는 영속성 컨텍스트 내부에 존재하는 캐시입니다. 엔티티를 조회할 때 데이터베이스에 직접 접근하지 않고 1차 캐시에서 먼저 찾아 성능을 향상시킵니다. 또한, 영속성 컨텍스트 내에서 엔티티의 동일성을 보장하는 중요한 역할을 합니다. 같은 엔티티를 여러 번 조회해도 1차 캐시 덕분에 항상 동일한 객체를 반환받을 수 있습니다.
예를 들어, em.find(Member.class, 1L)을 여러 번 호출해도 1차 캐시에 있는 동일한 Member 객체를 반환합니다. 쓰기 지연 기능도 영속성 컨텍스트를 통해 구현됩니다. 변경된 엔티티는 바로 데이터베이스에 반영되지 않고 영속성 컨텍스트에 보관되다가 트랜잭션 커밋 시점에 일괄적으로 반영됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 JPA / ORM 면접 질문
- JPA에서 엔티티 상태(비영속, 영속, 준영속, 삭제)에 대해 설명해주세요.
- JPA(Java Persistence API)란 무엇이며, 자바 애플리케이션에서 어떤 역할을 하는 기술 표준인가요?
- JPA의 N+1 문제가 무엇이며, 어떻게 해결할 수 있나요?
- JPA에서 지연 로딩(Lazy Loading)과 즉시 로딩(Eager Loading)의 차이점과 사용 시 주의사항은?
- JPA의 더티 체킹(Dirty Checking)이란 무엇이며, 어떻게 동작하나요?
- JPA의 @ManyToOne, @OneToMany 관계에서 양방향 매핑 시 주의사항은 무엇인가요?