Django

Django 캐싱

캐시 백엔드, 뷰별 캐싱, 템플릿 프래그먼트 캐싱, 저수준 캐시 API, 캐시 무효화

20 면접 질문·
Mid-Level
1

구성을 지정하지 않으면 Django의 기본 캐시 백엔드는 무엇입니까?

답변

Django는 기본적으로 'LocMemCache' 백엔드(로컬 메모리 캐시)를 사용하며 데이터를 Python 프로세스 메모리에 저장합니다. 이 백엔드는 간단하고 빠르지만 서버 재시작 사이에 데이터가 유지되지 않고 서로 다른 프로세스 간에 데이터를 공유하지 않습니다. 개발에는 적합하지만 다중 프로세스 프로덕션 환경에는 권장되지 않습니다.

2

뷰의 전체 응답을 15분 동안 캐시하려면 어떤 데코레이터를 사용해야 합니까?

답변

django.views.decorators.cache의 cache_page 데코레이터는 뷰의 전체 HTTP 응답을 캐시합니다. 매개변수는 초 단위 시간입니다(15분 = 900초). 캐시 키는 URL과 쿼리 매개변수에서 자동으로 생성됩니다. 이 데코레이터는 캐싱에 적합한 HTTP 헤더도 처리합니다.

3

템플릿 프래그먼트를 5분 동안 캐시하기 위한 템플릿 태그의 올바른 구문은 무엇입니까?

답변

{% cache %} 태그는 템플릿 프래그먼트를 캐시합니다. 구문은 {% cache timeout cache_name %}...{% endcache %}입니다. 첫 번째 인자는 초 단위 시간(5분이면 300), 두 번째는 이 프래그먼트를 식별하는 고유한 이름입니다. 캐시를 다양하게 하기 위해 추가 인자를 더할 수 있습니다(예: user.id).

4

키가 존재하지 않을 경우 기본값을 사용하여 캐시에서 값을 가져오려면 어떻게 합니까?

5

여러 인스턴스가 있는 프로덕션 환경의 Django 애플리케이션에는 어떤 캐시 백엔드가 권장됩니까?

+17 면접 질문

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

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

무료로 시작하기