
Performance Optimization
쿼리 최적화, N+1 문제, eager loading, lazy loading, 캐싱 전략, 데이터베이스 인덱싱, 프로파일링 도구
22 면접 질문·
Senior
1Laravel에서 N+1 문제란 무엇입니까?
1
Laravel에서 N+1 문제란 무엇입니까?
답변
N+1 문제는 Eloquent가 컬렉션을 가져오기 위해 하나의 쿼리를 실행한 다음 관계를 로드하기 위해 항목마다 추가 쿼리를 실행할 때 발생합니다. 이는 데이터베이스 접근을 배가시키고 대규모에서 성능을 크게 저하시킵니다. with()를 사용한 eager loading을 적용하면 N개의 쿼리 대신 하나의 추가 쿼리로 모든 관계를 로드합니다.
2관계를 로드할 때 N+1 문제를 해결하려면 어떤 메서드를 사용해야 합니까?
2
관계를 로드할 때 N+1 문제를 해결하려면 어떤 메서드를 사용해야 합니까?
답변
with() 메서드는 eager loading을 수행하여 관계를 하나의 추가 쿼리로 로드합니다. 관계에 접근할 때 모델마다 쿼리를 실행하는 대신 모든 관계를 미리 로드합니다. 이는 SQL 쿼리 수를 크게 줄이고 성능을 향상시킵니다.
3eager loading과 lazy loading의 차이점은 무엇입니까?
3
eager loading과 lazy loading의 차이점은 무엇입니까?
답변
eager loading은 with()를 통해 메인 쿼리와 함께 관계를 즉시 로드하는 반면, lazy loading은 첫 접근 시 필요할 때 관계를 로드합니다. lazy loading은 루프 안에서 관계에 접근하면 N+1 문제를 일으킬 수 있습니다. 관계를 사용할 예정이라면 여러 쿼리를 피하기 위해 eager loading이 권장됩니다.
4
Laravel에서 Cache::remember()의 역할은 무엇입니까?
5
Cache::remember()와 Cache::rememberForever()의 차이점은 무엇입니까?
+19 면접 질문
기타 Laravel 면접 주제
PHP 기초
Junior
25개 질문PHP 객체지향 기초
Junior
20개 질문Composer & Autoloading
Junior
18개 질문Laravel 기초
Junior
20개 질문Laravel 라우팅
Junior
20개 질문Blade Templates
Junior
18개 질문Request & Response
Junior
20개 질문Eloquent ORM 기초
Junior
22개 질문Eloquent Relationships
Mid-Level
25개 질문Migrations & Schema Builder
Mid-Level
20개 질문유효성 검사와 폼
Mid-Level
22개 질문인증
Mid-Level
20개 질문인가와 Policies
Mid-Level
18개 질문API Resources & Authentication
Mid-Level
26개 질문미들웨어
Mid-Level
18개 질문Service Container & DI
Mid-Level
20개 질문Queues & Jobs
Mid-Level
22개 질문Events & Listeners
Mid-Level
18개 질문알림 및 메일
Mid-Level
20개 질문File Storage
Mid-Level
18개 질문Testing & PHPUnit
Mid-Level
24개 질문Caching
Mid-Level
18개 질문Livewire & Inertia
Mid-Level
20개 질문Eloquent Advanced
Senior
24개 질문Repository Pattern
Senior
20개 질문Laravel 패키지
Senior
20개 질문Security Best Practices
Senior
22개 질문Laravel Octane
Senior
18개 질문Laravel Distributed Systems
Senior
22개 질문Observability & Monitoring
Senior
20개 질문Deployment & DevOps
Senior
20개 질문