TIL/Django(10)
-
[Django] pending되는 이슈에 대한 고찰
회사 프로젝트 진행 중 당황스러운 일을 겪었다. 영상 업로드 요청에 대해서 긴 시간이 걸렸다(엄청나게 길진 않지만 거의 1분 가까이 걸렸다). 그 이유는 한 번의 요청에 여러 이벤트가 발생했다는 점. 영상 파일을 웹서버에 업로드 업로드된 파일을 mp4파일로 변환(FFMPEG 사용) 업로드된 파일을 raw파일로 변환(FFMPEG 사용) 위에 변환된 두 파일을 NAS에 저장 mp4로 변환된 파일을 외부 storage에 저장 4번에서 NAS에 저장된 두 파일의 path를 DB에 저장하고 client에 리턴 이렇게 한 번에 많은 것을 처리하기 때문에 업로드 요청 시간이 오래 걸리게된다. 아키텍처를 내가 설계했다면 이런 식으로 하지 않았겠지만 기존 레거시 코드를 기반으로 마이그레이션했기 때문에 어쩔 수 없이 이런..
2022.08.02 -
[Django] Logging Handler
Python logging Handler Django의 로깅은 파이썬에서 제공하는 logging 모듈을 그대로 가져와서 사용한다. 파이썬에서 로깅을 할 때 사용되는 핸들러는 여러 종류가 있다. StreamHandler StreamHandler 클래스는 sys.stdout, sys.stderr와 같은 스트림으로 로깅을 출력한다. 즉, 쉽게 얘기하여 Console에 log를 남기게 된다. FileHandler FileHandler 클래스는 로깅 출력을 디스크 파일로 보낸다. StreamHandler 에서 출력 기능을 상속받는다. 지정된 파일이 열리고 로깅을 위한 스트림으로 사용된다. 모드는 기본값이 a(추가 모드) 이다. NullHandler NullHandler 클래스는 포맷이나 출력을 하지 않는다. 기본..
2022.04.28 -
[Django] Logging 설정
django에서의 logging python 유저들이 프로그래밍을 할 때 대부분 print 함수를 사용해서 디버깅을 할 것이다. 왜냐면 가장 간단하고 편하기 때문에... 그러나 logging을 이용하면 더 구조적이고 관리하기 쉬운 디버깅이 가능하다. logging level 로깅의 레벨은 총 5가지 단계가 있다. DEBUG : Low level system information for debugging purposes 말 그대로 디버깅 용도이다. 변수에 할당된 값이 무엇인지 확인하는 정도...? INFO : General system information 일반적으로 찍히는 로그이다. 유저의 로그인 기록, 파일 업로드 기록 등 django에서는 default값으로 사용한다. WARNING : Informa..
2022.04.26 -
[Django] timezone
python에서 시간을 얻는 방법 from datetime import datetime datetime.now() # 결과: datetime.datetime(2022, 3, 14, 0, 33, 21, 553440) django에서 시간을 얻는 방법 from django.utils import timezone timezone.now() # 결과: datetime.datetime(2022, 3, 14, 0, 33, 21, 677327, tzinfo=) timezone.localtime() # 결과: datetime.datetime(2022, 3, 14, 0, 33, 21, 350281, tzinfo=) django에서 시간을 표현하는 방법 USE_TZ 이 False이기 때문에 강제로 한국 시간을 DB에 저장..
2022.04.15