랄라
[TIL 15일차]25.03.06 본문
오늘의 질문: 엔티티 매니저에 대해 설명해주세요.
*답변
더보기
엔티티 매니저는 엔티티를 관리하는 역할을 가지고있다.
모범답안
엔티티는 영속성 컨텍스트와 관련하여 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 |