django-debug-toolbar와 django-silk로 병목 지점 찾기

Django 애플리케이션의 성능 병목을 찾아내는 두 가지 핵심 프로파일링 도구 활용법

django-debug-toolbar

개발 환경에서 브라우저 화면에 디버깅 정보를 실시간으로 표시하는 도구

설치 및 설정

  • pip install django-debug-toolbar

  • INSTALLED_APPSdebug_toolbar 추가

  • MIDDLEWAREDebugToolbarMiddleware 추가

  • INTERNAL_IPS = ["127.0.0.1"] 설정

핵심 패널

  • SQL 패널: N+1 쿼리 문제 탐지, 중복/유사 쿼리 확인

  • Time 패널: 각 단계별 소요 시간 분석

  • Templates 패널: 템플릿 렌더링 시간 및 컨텍스트 데이터 확인

django-silk

요청 기록을 누적하여 심층 분석하는 프로파일링 도구

설치 및 설정

  • pip install django-silk

  • INSTALLED_APPSsilk 추가

  • MIDDLEWARESilkyMiddleware 추가

  • /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