logo

Django

  • Published on
    Django 는 우리의 Django project 에 설치된 모든 모델을 추적할 수 있는 contenttypes 라는 고수준, 일반 인터페이스를 제공하는 어플래케이션이 포함한다. 그 핵심에는 `django.contrib.contenttypes.models.ContentType` 모델이 존재하는데 이는 우리 프로젝트에 설치된 모델에 대한 정보를 저장한다. 새로운 모델이 설치되면 새로운 ContentType 모델 레코드 또한 생성된다.
  • Published on
    prefetch_related 는 기본적으로 사용 목적과 용도가 select_related 와 유사하다. 용도가 다르기 보다는 연결된 모델이 많아질 경우 쿼리가 범람 (문서에서는 deluge of database queries) 되는 상황을 막기 위함이다.
  • Published on
    Sentry Report 로 인지하게 된 오류이다. N+1 Query 는 ORM 사용 시 발생할 수 있는 상황으로 주 증상은 성능 저하 이다. 이 문제의 원인과 발생 과정을 살펴보고 솔루션을 찾아본다.
  • Published on
    SQL 만 사용하다 ORM 을 사용하게 되면 처음에는 깔끔한 모델 정리와, 테이블 생성부터 관리까지 편리한 기능들에 만족하게 된다. 하지만, 조금 복잡한 쿼리가 필요한 경우 ORM 별로 사용법이 달라 찾아보게 된다. 금번 포스트 에서는 특히 헷갈리기 쉬운 `select_related` 와 `prefetch_related` 를 살펴보고자 한다.