랄라

[TIL 15일차]25.03.06 본문

내일배움캠프/TIL

[TIL 15일차]25.03.06

devdaeun 2025. 3. 7. 10:26

오늘의 질문:  엔티티 매니저에 대해 설명해주세요.

*답변

더보기
엔티티 매니저는 엔티티를 관리하는 역할을 가지고있다.

 

모범답안

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

오늘의 질문: JPA의 N + 1 문제에 대해서 설명해주세요.

*답변

더보기

연관관계가 있는 다른 엔티티의 값을 추가적으로 같이 조회해야하는경우 추가적인 쿼리문이 길어져 데이터를 가져오는데에 시간이 많이 소요되는 문제

 

모범답안

JPA N + 1 문제는 연관 관계가 설정된 엔티티를 조회할 경우에, 조회된 데이터 개수(N)만큼 연관관계의 조회 쿼리가 추가로 발생하는 현상입니다. 예를 들어, 블로그 게시글과 댓글이 있는 경우, 게시글을 조회한 후 각 게시글마다 댓글을 조회하기 위한 추가 쿼리가 발생할 수 있습니다. 이를 N + 1 문제라고 합니다.


코드카타

https://school.programmers.co.kr/learn/courses/30/lessons/138477

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

'내일배움캠프 > TIL' 카테고리의 다른 글

[TIL 17일차]25.03.10  (0) 2025.03.10
[TIL 16일차]25.03.07  (0) 2025.03.07
[TIL 14일차]25.03.05  (0) 2025.03.05
[TIL 13일차]25.03.04  (0) 2025.03.04
[TIL 12일차] 25.02.27  (0) 2025.02.27