Symfony

성능 및 최적화

Profiler, Blackfire, 쿼리 최적화, lazy loading, eager loading, 캐싱 전략

22 면접 질문·
Senior
1

개발 주기에서 Symfony Profiler의 주요 목적은 무엇인가요?

답변

Symfony Profiler는 각 HTTP 요청에 대한 상세 정보(실행 시간, SQL 쿼리, 메모리 사용량, cache, events 등)를 수집하는 디버깅 도구입니다. 코드를 수정하지 않고도 병목 지점을 식별하고 애플리케이션 동작을 분석할 수 있게 해줍니다. 기존 로그와 달리 Web Debug Toolbar를 통해 접근할 수 있는 대화형 그래픽 인터페이스를 제공합니다.

2

성능 분석에서 Blackfire는 Symfony Profiler와 어떻게 다른가요?

답변

Blackfire는 함수 단위로 코드를 심층 분석하는 PHP 애플리케이션 프로파일러로, call graphs, 프로파일 비교, 회귀 탐지 기능을 제공합니다. 요청 단위 개요를 제공하는 Symfony Profiler와 달리, Blackfire는 각 함수 호출마다 CPU, 메모리, I/O 지표와 함께 코드 실행 전체를 추적합니다. 또한 서로 다른 코드 버전 간의 성능을 비교할 수 있습니다.

3

Doctrine ORM에서 lazy loading과 eager loading의 차이점은 무엇인가요?

답변

lazy loading은 코드에서 실제로 접근할 때만 연관 관계를 로드하므로 초기 부하를 줄이지만, 여러 추가 쿼리로 인해 N+1 문제를 일으킬 수 있습니다. eager loading은 JOIN을 통해 메인 쿼리와 함께 연관 관계를 즉시 로드하여 추가 쿼리를 피하지만, 전송되는 데이터 양이 늘어날 수 있습니다. 선택은 데이터를 어떻게 사용할지에 따라 달라집니다.

4

Doctrine에서 N+1 쿼리 문제를 어떻게 식별하고 해결하나요?

5

거의 변경되지 않지만 자주 읽히는 데이터에는 어떤 캐싱 전략을 사용해야 하나요?

+19 면접 질문

다음 면접을 위해 Symfony을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기