파비의 매일매일 공부기록

Two Scoops of Django - #33장 본문

Study/Python

Two Scoops of Django - #33장

fabichoi 2021. 7. 4. 23:30

이번장은 디버깅의 기술에 대한 내용이다.

언제 어떤 프로젝트던지 디버깅은 항상 필요하다.

 

1. 개발환경에서의 디버깅

 - django-debug-toolbar 이용하기

 - 짜증 나는 클래스 기반 뷰 에러 : urls.py 모듈 확인할 것

 - 파이썬 디버거 마스터하기 : PDB 자체도 유용하지만 ipdb 같은 서드 파티 패키지와 함께 쓰면 더 강력해짐.

 - 폼 파일 업로드의 핵심 기억 : 파일 업로드 시 소리 소문 없이 실패하는 경우가 있기에 점검이 필요하다.

 - 텍스트 편집기나 통합 개발 환경의 힘을 빌리기 : 텍스트 편집기를 사용 중이라면 플러그인 잘 활용할 것. 통합 개발환경을 사용하면 내장되어 있는 고급 기능 잘 활용할 것

 

2. 상용 서비스 시스템의 디버깅 : 로컬에선 재현이 안되는 경우가 있을 수 있는데 이러한 상황에서 도움되는 팁

 - 로그를 좀 더 편하게 읽기 : 상용로그의 경우 로그 크기가 너무 방대해서 문제의 원인 찾기가 힘듦. 센트리 등의 로그 분석 시스템을 이용하여 좀 더 쉽게 로그를 열람, 분석할 것

 - 상용 환경 미러링 : 편하게 디버깅할 수 있도록 작업자가 쉽게 접근할 수 있는 환경으로 상용 환경을 미러링 하는 것을 말함. PaaS, 데브옵스, 동일 환경 구성 등이 이를 수월하게 만듦.

 - UserBasedExceptionMiddleware : 디버깅 도구를 상용환경에서 사용

 - 고질적인 settings.ALLOWED_HOSTS 에러 : 잘못 세팅되는 순간 ALLOWED_HOST는 500 에러를 일으키며, SuspiciousOperation 에러만 나오지 다른 건 안 나오니 답답. 그럴 땐 일단 settings.DEBUG가 False로 되어있는지 확인

 

3. 기능 설정 : 프로젝트 각각의 기능을 웹 기반 인터페이스에서 설정

 - 개발한 모든 기능을 유저에게 바로 배포하기 보단 Test Bed를 만들어서 테스트하는 걸 추천

 - 기능 설정 패키지 : django-gargoyle, django-waffle이 있음

 - 기능 설정과 단위 테스트 : 기능 설정으로 해당 기능이 비활성화된 경우 그 비활성화된 기능은 테스트되지 않는 것을 유의

반응형

'Study > Python' 카테고리의 다른 글

파이썬 병렬 프로그래밍 - #0 들어가며  (0) 2021.07.18
Two Scoops of Django - #34장  (2) 2021.07.05
Two Scoops of Django - #32장  (0) 2021.07.03
Two Scoops of Django - #31장  (0) 2021.07.02
Two Scoops of Django - #30장  (0) 2021.07.01
Comments