Django ORM 성능 최적화 N+1 문제 해결
·
Software Developer
Query 개선의 목적 백엔드 개발자의 채용 공고에 종종 쿼리 튜닝이 들어가 있다. 결국 한 API가 실행될 때 몇 개의 Query를 날리느냐 ( = DB hit를 몇 번 치느냐)는 성능 향상으로 직결되는 매우 중요한 문제인 것이다. N+1 문제란? 오늘 살펴볼 N+1 문제는 Djnago의 ORM과 같은 ORM(Object-Relational Mapping)으로 작업할 때 발생할 수 있는 성능 문제다. 각 객체에 대해 검색하려고 할 때 관련된 다른 Table(=collection)까지 검색이 필요한 경우에 발생한다. 이 작업을 비효율적으로 수행하면 데이터베이스에 대해 N+1 Query를 실행하게 된다. 여기서 N은 해당 객체의 수이다. 이로 인한 성능 저하는 대규모 데이터를 세트로 작업하는 경우 애플리케..