디지몬

1. 순환 참조란?JPA에서 엔티티 간 양방향 연관 관계를 설정하면 서로가 서로를 참조하는 구조가 만들어질 수 있다.이 자체는 잘못된 것은 아니지만, 직렬화(예: JSON 변환)나 무한 출력, 디버깅 시 순환 참조 예외로 이어질 수 있다.예를 들어 @OneToMany, @ManyToOne 구조를 모두 선언하면 순환이 생길 수 있다. 2. 디지몬을 예시로 살펴보자.디지몬 파트너 구조를 생각해보자.Tamer(테이머)는 여러 마리의 Digimon(디지몬)을 가질 수 있고,각 Digimon은 자신이 속한 Tamer를 알고 있다. 이 구조는 다음과 같이 모델링할 수 있다.@Entitypublic class Tamer { @Id @GeneratedValue private Long id; privat..
사실 거창하게(?) 적었지만 디지몬은 큰 의미없다.디지몬을 모르는 사람은 오히려 혼란스러울 수 있다.1. N + 1 문제란?N + 1 문제는 JPA에서 연관된 엔티티를 조회할 때, 불필요하게 많은 SQL 쿼리가 발생하는 현상을 말한다. 예를 들어, 1개의 쿼리로 N개의 엔티티를 가져온 다음,각각의 엔티티에 대해 추가로 또 다른 쿼리를 1개씩 실행한다면?→ 총 N + 1개의 쿼리가 실행된다. 이 현상은 대부분 JPA의 연관 관계 + 지연 로딩(LAZY) 설정이 맞물릴 때 발생하며,성능 병목의 대표적인 원인 중 하나다. 1.1 지연 로딩(LAZY)과 즉시 로딩(EAGER)JPA는 연관관계를 설정할 때 fetch 속성을 통해 해당 연관 객체를 언제 로딩할 것인지를 정의할 수 있다.@ManyToOne(fetch..
chillmyh
'디지몬' 태그의 글 목록