PMPV

장고 3.0 - 더 이상 못쓰는 기능 본문

Python Django/django

장고 3.0 - 더 이상 못쓰는 기능

playinys 2020. 7. 17. 22:43
반응형
2020.07.17

새 프로젝트를 시작하면서 파이썬 3.8, 장고 3.0을 선택했다.

선택한 이유는 두 가지였다.

 

- 현재 가장 안정화된 최신 버전을 사용해서 버전업 시기를 최대한 늦추자.

- 버전 관리를 해보자!

 

사실 대단한 목적은 없었고, 두 번째가 99%의 이유였다. 지금껏 라이브러리나 프레임워크를 사용하면서 버전에 크게 신경쓴 적이 없었는데 이번엔 의도적으로 가장 최신 버전을 사용했다. 그로 인해 생기는 구 버전 라이브러리의 충돌이나 새로 릴리즈 된 기능들을 찾아쓰는 경험을 하고 싶었다.

 

이 글에서 장고 3.0에서 발생하는 구 버전 라이브러리의 충돌을 정리한다.

 

1. Django Rest Swagger

마치 사망선고같다. RIP

스웨거에 대한 설명은 생략한다. Django-Rest-Framework(DRF)를 세팅하면서 알게됐다.

이유는 아래 이슈에 잘 설명되어 있다.

 

https://github.com/marcgibbons/django-rest-swagger/issues/815

 

 

(django_version >= 3.0) template tag "staticfiles" removed · Issue #815 · marcgibbons/django-rest-swagger

staticfiles template tag was deprecated in Django 2.2 and is finally removed in Django 3.0 https://docs.djangoproject.com/en/dev/releases/3.0/#features-removed-in-3-0 Will submit PR in a few minutes.

github.com

Django 3.0으로 넘어오면서 staticfiles가 없어졌다! django-rest-swagger에서는 여전히 staticfiles를 사용하고 있기 때문에 더 이상 이용할 수 없다. 대신 3.0부터는 drf-yasg를 사용한다. python 3.8, django 3.0을 모두 지원한다.

 

2. Django-debug-panel

개인적으로 장고에서 개발할 때 SQL 쿼리 등을 확인하기 위해서 Django-debug-toolbar를 필수로 세팅하고 시작한다. 하지만 DRF, GraphQL등으로 작업할 때는 마음처럼 작동하지 않아서 따로 chrome extension과 함께 디버그 패널을 추가로 세팅한다. 하지만 이것도 더 이상 사용할 수 없다. 마찬가지로 아래 이슈에 등록되어 있다.

 

https://github.com/recamshak/django-debug-panel/issues/33

 

Doesn't work with Django v2.0 · Issue #33 · recamshak/django-debug-panel

It doesn't work with the version 2.0 of Django. It gives the following error from django.core.urlresolvers import reverse, resolve, Resolver404 ModuleNotFoundError: No module named 'django....

github.com

이건 좀 오래된 이슈로 보인다. 이미 오래 전에 변경된 django.core.urlresolvers같은 모듈 경로를 아직도 사용한다. 미들웨어 문제도 있다고 한다.

예전에 있던 팀에서 이 문제를 해결하기 위해 미들웨어를 직접 커스텀해서 GraphQL에서 정상적으로 사용하긴 했다. 사실 3.0에서도 어떻게 잘 커스텀하면 사용할 수 있을지도 모른다, 라고 생각해서 직접 커스텀 해봤는데 가뜩이나 없는 머리 더 빠지는 줄 알았다. 기왕이면 다른 해결책을 찾길 권한다. 내가 찾은건 django-debug-toolbar-request-history였다. 조금 빈약한 별님이 마음에 걸렸지만 Django-debug-toolbar의 공식 문서에도 써드파티로 등록되어있고 현 시점에서도 이슈 대응이 잘 되고 있는것 같아 선택하게 되었다. 아주 잘 작동해서 만족하고 사용 중이다.

 

당-당

 


 

아직 프로젝트를 시작한지 얼마 되지 않아서 이 리스트는 더 추가될 것 같다. 그래도 TextChoice같이 새로 릴리즈 된 기능을 하나하나 찾아보면서 개발하는 맛이 있어서 좋다.

 

반응형
Comments