N+1 문제 해결 방법
·
Framework/Spring
1. N+1 문제(1) N+1 문제 정의N+1문제는 ORM을 사용할 때 발생하는 대표적인 성능저하 문제 입니다. 하나의 쿼리로 N개의 엔티티를 먼저 로딩한 후,각 엔티티와 연관된 데이터를 조회하기 위해 추가 개별 쿼리가 N번 실행되어,결국 N+1번의 쿼리가 발생하는 현상입니다. [N+1 예시]10개의 게시글이 있고, 각 게시글에 달린 댓글을 조회한다고 가정하면,초기 게시글 조회 쿼리 1개와 각 게시글에 대한 댓글 조회 쿼리 10개총 11개의 쿼리가 실행됩니다.   (2) N+1 문제 원인N+1 문제의 주요 원인은 ORM의 Lazy Loading 방식과 연관관계 매핑에서 발생하는 쿼리 실행 방식에 있습니다.🤔 Lazy Loading 이란?연관된 데이터를 지연로딩 방식으로 설정하면,초기에는 부모 엔티티만 ..
영속성 컨텍스트, JPA 기반 엔티티 관리 핵심 원리
·
Framework/Spring
오늘날 많은 애플리케이션이 복잡한 비즈니스 로직과 대용량 데이터를 다루면서,데이터의 일관성과 효율적인 엔티티 관리가 매우 중요해졌습니다. 이런 상황에서 JPA는 객체와 관계형 데이터베이스 간의 매핑을 쉽게 해주어 개발 생산성을 높여줍니다.특히 영속성 컨텍스트는 단순한 캐시 이상의 역할을 합니다. 영속성 컨텍스트는 단일 트랜잭션 내에서 엔티티를 관리하고,변경 사항을 감지하여 데이터 동기화를 자동으로 처리합니다. 이 글에서는 영속성 컨텍스트의 주요 기능과 동작 원리를 설명 드리겠습니다.      📌 영속성 컨텍스트의 개념과 역할영속성 컨텍스트는 JPA가 제공하는 메모리 기반 저장소로,어플리케이션 내에서 엔티티를 효과적으로 관리하는 역할을 합니다. 데이터베이스와 상호작용하기 전에 엔티티 객체를 메모리에 보관..