브라우저에서 각 요청과 응답의 디버그 정보를 보여 주는, 설정 가능한 Django 패널 모음입니다.
jazzband/django-silk
느린 구간을 찾도록 Django 요청, SQL 쿼리, 코드 블록을 기록하는 실시간 프로파일러 및 검사 UI입니다.
- 스타
- 5,004
- 포크
- 381
- 열린 이슈
- 132
- 마지막 커밋
- 3일 전
어떤 프로젝트인가요?
Silk는 Django 애플리케이션을 위한 프로파일링 도구입니다. 미들웨어가 각 HTTP 요청과 응답을 가로채고, SQL 실행을 감싸는 래퍼가 요청마다 발생한 데이터베이스 쿼리를 기록합니다. 데이터는 설정된 데이터베이스에 저장되며, 내장 웹 UI(/silk/)에서 확인할 수 있습니다. UI에서 요청을 필터링하고 처리 시간, 쿼리 수, 쿼리 시간, 헤더와 본문을 살펴볼 수 있습니다.
더 심층적으로 분석할 때는 Silk가 각 요청에서 Python의 cProfile을 실행하고 결과를 UI에 표시할 수 있으며, 선택적으로 호출 그래프와 snakeviz 같은 도구에서 사용할 수 있는 다운로드 가능한 .prof 파일도 제공합니다. 데코레이터와 컨텍스트 매니저를 사용하면 특정 함수나 코드 블록을 프로파일링할 수 있고, 동적 프로파일링을 이용하면 직접 수정할 수 없는 모듈의 함수도 감쌀 수 있습니다. 또한 Silk는 기록된 요청을 재현할 수 있도록 curl 및 Python 코드를 생성합니다.
Django 인증과 권한으로 접근을 제한할 수 있으며, 비밀번호와 토큰 같은 민감한 키는 마스킹됩니다. 기록 범위는 비율, 상태 코드 또는 경로로 제한할 수 있고, 오래된 기록은 가비지 컬렉션으로 정리할 수 있습니다.
핵심 기능
- 01Django 미들웨어를 통해 요청, 응답, 헤더와 본문을 기록합니다.
- 02요청별 SQL 쿼리와 실행 시간, 스택 트레이스를 추적합니다.
- 03요청마다 cProfile을 실행하고 호출 그래프와 .prof 다운로드 파일을 생성할 수 있습니다.
- 04데코레이터나 컨텍스트 매니저로 특정 함수 또는 코드 블록을 프로파일링합니다.
- 05기록된 요청을 재현할 curl 및 Python 코드를 생성합니다.
- 06인증, 권한 설정과 민감한 키 마스킹을 지원합니다.
활용 사례
- 느린 Django 뷰에서 N+1 쿼리 문제를 찾습니다.
- 개발 또는 스테이징 환경에서 특정 함수나 비즈니스 로직 블록을 프로파일링합니다.
- 선택한 상태 코드의 요청만 기록해 프로덕션 오류를 조사합니다.
- 재현 가능한 요청을 curl 명령이나 Python 테스트 코드로 공유합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- django-silk은(는) 무엇인가요?
- 느린 구간을 찾도록 Django 요청, SQL 쿼리, 코드 블록을 기록하는 실시간 프로파일러 및 검사 UI입니다. Silk는 Django 애플리케이션을 위한 프로파일링 도구입니다. 미들웨어가 각 HTTP 요청과 응답을 가로채고, SQL 실행을 감싸는 래퍼가 요청마다 발생한 데이터베이스 쿼리를 기록합니다. 데이터는 설정된 데이터베이스에 저장되며, 내장 웹 UI(/silk/)에서 확인할 수 있습니다. UI에서 요청을 필터링하고 처리 시간, 쿼리 수, 쿼리 시간, 헤더와 본문을 살펴볼 수 있습니다.
- django-silk은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- django-silk은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- django-silk은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. django-silk의 마지막 커밋은 2026년 11월 3일입니다.
- django-silk은(는) 어디에 사용할 수 있나요?
- 느린 Django 뷰에서 N+1 쿼리 문제를 찾습니다. 개발 또는 스테이징 환경에서 특정 함수나 비즈니스 로직 블록을 프로파일링합니다. 선택한 상태 코드의 요청만 기록해 프로덕션 오류를 조사합니다. 재현 가능한 요청을 curl 명령이나 Python 테스트 코드로 공유합니다.
- django-silk은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/jazzband/django-silk
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
실행 중인 애플리케이션의 CPU, 메모리, I/O 프로파일을 수집해 느린 코드의 원인을 개별 코드 줄까지 추적하는 지속 프로파일링 플랫폼입니다.
Python 코드, 네이티브 확장 모듈, 인터프리터의 메모리 할당을 추적하고 여러 유형의 리포트를 생성하는 메모리 프로파일러입니다.
profile.proto 형식의 프로파일링 데이터를 시각화하고 분석하는 CLI 및 웹 도구입니다.
함수 호출을 기록하고 코드 실행을 대화형 타임라인으로 시각화하는 오버헤드가 낮은 Python 트레이서입니다.
Python 함수의 각 소스 코드 줄이 실행되는 데 걸리는 시간을 보여주는 줄 단위 프로파일러입니다.