본문 바로가기

Python3

[Django] select_related & prefetch_related Django ORM은 DB와 Python 객체를 mapping 해주는 강력한 기능을 지원한다. 이번 글은 Django ORM queryset 중, 여러 개의 model 을 처리할 때 유용하게 쓸 수 있는 select_related() 와 prefetch_related()에 대해 예제를 통해 알아본다. 간단 소개 query와 모든 내용을 확인하기에 앞서, Django에서 ORM 최적화로 쓰이는 select_related 와 prefetch_related 에 대해 간단히 알아보고 실습을 진행한다. Django Docs — select_related Django Docs — prefetch_related Django ORM으로 데이터를 조회시 relation의 여부에 따라 추가로 DB 조회가 발생하는데, se.. 2022. 4. 24.
Django Testcase Entry Django 의 테스트케이스 작성에 앞서, 테스트가 필요한 이유와 목표를 정의하고 시작하자. 비행기를 예시로 보자. 공항간 이동을 위해, 이륙->비행->착륙 을 해야하고, 출발 도착 과정에서 승객을 위해 입구도 열고 닫아야 한다. 또, 비상시 구명조끼와 보트 등 안전장치의 작동여부 등 모든 기능을 각 비행 전 확인 후 이륙이 가능하다. (아마 이륙 전 필요한 모든 비행기능을 체크하는 과정을 날개를 통해 본 적이 있을것이다.) 프로그램도 마찬가지다. 웹서비스의 경우, 작성한 비즈니스 로직의 작동여부부터 API request&response 등등.. 필요한 테스트가 정말 많다😇😇 테스트를 통해 개발자가 작성한 기능이 제대로 작동하는지 확인과 동시에 에러가 발생하는 경우, 올바른 조치가 가능하다. .. 2022. 4. 24.
Python Time Complexity 파이썬 시간복잡도 시간복잡도 정의 O(1) - 상수 O(logN) - log O(N) - 선형 O(NlogN) - 선형로그 O(N^c) - 다차 O(c^N) - 지수 O(N!) 팩토리얼 시간복잡도 표 시간 / N 1 2 4 8 16 32 64 1000 1 1 1 1 1 1 1 1 1 log N 0 1 2 3 4 5 6 9.97 N 1 2 4 8 16 32 64 1000 N log N 0 2 8 24 64 120 384 9966 N^2 1 4 16 64 256 1024 4096 10^6 N^3 1 8 64 512 4096 32768 262144 10^9 2^N 2 4 16 256 65536 4294967296 약 1844 경 약 1.07 * 10^301 N! 1 2 24 40320 20922789888000 약 2.63 *.. 2021. 8. 25.