MJK

고정 헤더 영역

글 제목

메뉴 레이어

MJK

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (99)
    • 연구실 (11)
    • 백엔드 공부진행도 (35)
      • JPA (2)
      • SpringBoot (5)
      • 프로그램 패러다임 (0)
      • Java (6)
      • 연습 코드 (22)
    • 공부 (22)
    • SO_FIT (8)
    • 멋쟁이사자처럼 - 동아리 (1)
    • 스타트업 (12)
    • 헬스팅 (2)
    • 출장 자동화 시스템 (7)

검색 레이어

MJK

검색 영역

컨텐츠 검색

백엔드 공부진행도/JPA

  • JPA N+1 문제

    2024.12.02 by myeongjaechoi

  • 엔티티 매니저와 1차 캐시

    2024.11.27 by myeongjaechoi

JPA N+1 문제

JPA N+1 문제란?연관 관계가 설정된 엔티티를 조회할 경우, 조회된 데이터 개수(N)만큼 연관관계의 조회 쿼리가 추가로 발생하는 현상Ex) 댓글 10개 달린 게시글 1개 조회하는데 총 11개의 쿼리(게시글 조회 1개 + 각 게시글의 댓글 조회 10개)가 실행즉시로딩으로 설정하고 findAll()을 실행하면 N+1 문제 발생findAll()은 select u from User u라는 JPQL 구문으로 생성해서 실행하기 때문지연로딩이란? - 연관된 객체를 사용하는 시점에 로딩을 해주는 방법따라서 지연 로딩인 fetch join을 사용Ex) @ManyToOne(fetch = FetchType.LAZY)프록시 객체란?지연 로딩을 사용할 때 실제 엔티티 객체 대신 가짜 객체가 필요한데, 이것이 프록시 객체

백엔드 공부진행도/JPA 2024. 12. 2. 17:29

엔티티 매니저와 1차 캐시

개념을 모호하게 아는 것들이 많기 때문에, 확실하게 정리하고자 한다.엔티티 매니저란?엔티티 매니저는 persist, merge, remove, close 메서드를 이용하여 엔티티의 상태를 변경할 수 있다.엔티티 매니저는 영속성 컨테스의 1차 캐시로부터 엔티티를 조회할 수 있다.1차 캐시 : 기본적으로 'Map' 구조로 되어 있으며, 키는 엔티티의 식별자(@Id 값), 값은 해당 엔티티 객체1차 캐시 존재O : 데이터베이스 조회X, 1차 캐시에 저장된 엔티티 반환1차 캐시 존재X : 데이터베이스에서 해당 엔티티 조화한 뒤, 영속성 컨텍스트(즉, 1차 캐시)에 저장하고 반환1차 캐시의 동일성 보장 : 동일한 트랜잭션 내에서 동일한 식별자를 가진 엔티티는 항상 같은 객체를 반환성능 최적화 : 동일한 데이터를 ..

백엔드 공부진행도/JPA 2024. 11. 27. 13:38

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
MJK © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바