Django FilterSet에 대한 분석
·
Backend/Django
서론Django REST Framework를 사용하면서 filterset_class를 설정하고 필터링을 적용하는 건 매우 흔한 일이다. 필터셋을 통해 URL 파라미터만으로 복잡한 조건 필터링을 쉽게 구현할 수 있고, django-filter 라이브러리를 활용하면 필드 단위, 메서드 단위로 커스텀 필터도 자유롭게 정의할 수 있다. 필자 또한 filterset_class에 커스텀 메서드를 정의하여 필터링을 적용했다.하지만 API 성능을 점검해보는 과정에서, 단일 응답에 수백 개의 SQL 쿼리가 발생하는 문제를 발견했다.해당 문제를 아래 흐름으로 살펴보며 구체적인 원인을 파악해보고자 한다.filterset은 정확히 어떤 시점에 동작하는가?filterset 내부에서 Model.objects.filter()를 ..