두숟갈 스터디 13회
핵심 내용
Django core 교체, admin 활용, UserModel 설계를 함께 정리했다.
자세히 보기
Two Scoops of Django 18장, 19장, 20장을 함께 읽고, Django를 어디까지 커스터마이징할지와 기본 기능을 어떻게 제대로 쓰는지 정리했다.
18장에서는 Django core 교체를 다뤘지만 결론은 명확했다. 특별한 이유가 없다면 core module을 바꿀 필요가 없고, 특히 관계형 작업에 비관계형 database를 무리하게 쓰는 선택은 피해야 한다. 대신 cache, queue, 비정규화 데이터처럼 짧게 저장하거나 장기 보관이 필요한 경우에만 적절히 활용하자는 관점을 강조했다.
19장에서는 Django admin을 살펴봤다. admin은 end user용이 아니라 관리자를 위한 도구이며, 기본적으로 객체 이름은 __str__()로 보여주므로 읽기 좋은 표현을 제공해야 한다. 또 ModelAdmin에 호출 가능한 메서드나 함수를 추가할 수 있고, admindocs로 문서화를 돕거나 skin을 바꿔 쓸 수도 있지만, 권한이 큰 만큼 보안과 다중 사용자 환경의 주의가 필요하다고 정리했다.
20장에서는 UserModel 다루는 법을 정리했다.
- 사용자 모델은
get_user_model()로 찾고, foreign key에는settings.AUTH_USER_MODEL을 쓰는 것이 안전하다. - 커스텀 유저 필드는
AbstractUser를 상속해 기존 User를 확장하거나,AbstractBaseUser로 더 최소한의 모델에서 시작하는 두 가지 방식이 있다. - 관련 모델에서 다시 연결하는 방식도 함께 고려할 수 있다.
심화 파트에서는 admin을 실제로 사용할 때 자주 만나는 주제를 더 깊게 정리했다. admin.site.register() 내부에서 어떤 일이 일어나는지부터 시작해, Action 정의, queryset 변경으로 노출 데이터 필터링, inline으로 상위 모델과 함께 편집하기, 폼 교체와 초기값 설정, ChoiceField의 queryset 조작, 추가/수정/삭제 권한 제어, 하나의 모델에 대해 두 개의 admin page를 만드는 방법까지 다뤘다.
전체적으로는 화려한 기법보다도, 기본 기능을 왜 그렇게 써야 하는지 계속 의심하고 검토하는 태도가 중요하다는 메시지가 중심에 있었다. 예제 코드 하나에도 질문이 나왔을 때 비로소 수상한 부분을 발견할 수 있었고, 코드와 공부는 볼수록 더 많은 시선이 필요하다는 점을 확인한 자리였다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.