django-debug-toolbar와 django-silk로 병목 지점 찾기
Django 애플리케이션의 성능 병목을 찾아내는 두 가지 핵심 프로파일링 도구 활용법
django-debug-toolbar
개발 환경에서 브라우저 화면에 디버깅 정보를 실시간으로 표시하는 도구
설치 및 설정
pip install django-debug-toolbarINSTALLED_APPS에debug_toolbar추가MIDDLEWARE에DebugToolbarMiddleware추가INTERNAL_IPS = ["127.0.0.1"]설정
핵심 패널
SQL 패널: N+1 쿼리 문제 탐지, 중복/유사 쿼리 확인
Time 패널: 각 단계별 소요 시간 분석
Templates 패널: 템플릿 렌더링 시간 및 컨텍스트 데이터 확인
django-silk
요청 기록을 누적하여 심층 분석하는 프로파일링 도구
설치 및 설정
pip install django-silkINSTALLED_APPS에silk추가MIDDLEWARE에SilkyMiddleware추가/silk/URL 패턴 추가python manage.py migrate실행
핵심 기능
Requests 대시보드: 모든 요청의 성능 지표 누적 분석
SQL 탭: 과거 요청의 쿼리 상세 분석
Profiling 탭: Python cProfile 연동으로 코드 레벨 병목 탐지
meta_profile: 특정 코드 블록만 프로파일링
도구별 활용 시점
django-debug-toolbar
로컬 개발
실시간 현재 요청 진단, N+1 쿼리 즉시 확인
django-silk
스테이징/개발
누적 데이터 분석, 코드 레벨 병목 심층 분석
주의사항
운영 환경 절대 금지: 두 도구 모두 운영 환경에서 비활성화 필수
현실적 데이터 테스트: 충분한 더미 데이터로 실제 환경과 유사한 조건에서 테스트
보안 설정:
INTERNAL_IPS제한, 인증된 사용자만 접근 허용성능 오버헤드: 특히 Silk는 모든 요청을 기록하므로 부하 고려
Last updated
