Django 5

loop argument must agree with lock 해결 방법

2021년 12월 29일자 기준 Python version : 3.10.0 Django Channels 튜토리얼 진행하다가 아주 킹받는 상황을 맞이했다. 파트 2에서 redis 연동 및 테스트 진행하는데 Python 쉘에서 아래와 같은 redis 테스트 진행하다가 >>> async_to_sync(channel_layer.send)('test_channel', {'type': 'hello'}) 아래와 같은 에러를 토해냈다. ... self._cond = asyncio.Condition(lock=Lock()) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/locks.py", line 234, in __init__..

Python/Django 2023.07.10

Django + Channels (Redis) + Gunicorn + Uvicorn + Nginx 채팅 개발 시, 참고할 사항

Django + Channels + Gunicorn + Uvicorn + Nginx 조합으로 채팅 기능 배포 시, 아래 디지털 오션 문서를 참고했었는데 https://www.digitalocean.com/community/tutorials/how-to-set-up-an-asgi-django-app-with-postgres-nginx-and-uvicorn-on-ubuntu-20-04 그대로 따라해도 채팅 기능이 동작하지 않았다. 여러 삽질 끝에 패키치 재설치 및 설정값을 추가로 줘야 작동하는 것을 확인하였다. 1. Nginx 설정 웹소켓 도메인 처리 location /ws/ { proxy_pass [ 도메인 또는 Sock EX: http://unix:/run/gunicorn.sock ]; proxy_htt..

Python/Django 2023.07.10

[Backend] 정리 - 1

□ Model 필드 부분 update 포스트 방문 수 측정을 위해 Post 모델의 hits라는 필드를 가지고 있다. class Post(models.Model): ... hits = models.BigIntegerField(default=0) updated_at = models.DateTimeField(auto_now=True) ... 정말 많은 사람들이 방문하고 그랬다면 Redis 서버를 별도로 두어서 카운팅을 하고 스케줄러를 통해 주기적으로 DB에 업데이트해줬을 것이지만 여기서는 그런 주제의 글이 아니기에 패쓰 단순하게 사람들이 방문하면 +1씩 값을 증가시켜주는데 아래와 같이 그냥 save를 호출할 경우, DB에 전체 필드를 그대로 업데이트하게 된다. def retrieve(self, request,..

Intro.

전에 회사다닐 때, 도메인까지 구입하여 블로그를 만든 적이 있었다. (지금은 정말 다양하고 편리한 기능을 제공하는 블로그 사이트들에 반해 진작 접었지만..) 처음 만들었을 당시에는 그래도 내가 직접 만든 사이트에 장기간 좋은 글을 계속 쓴다면 나름 나만의 브랜드 사이트를 만들 수 있다는 상상을 했었던 것 같다. (꿈만 컸네.. 쩝.) 지금은 티스토리에 이렇게 글을 쓰지만 아... 너무 좋은 것 같다. Django Admin에 Ckeditor 붙여서 사용할 때는 뭐 나름 나쁘지는 않았지만 별도 추가 개발을 안하고 너무 기본 기능만 쓰다보니 비교가 되는 건 어쩔 수 없나보다. 이젠 사용하지 않으니 소스코드를 공개로 전환하는 과정에서 조금 고치고 싶은 욕구가 샘솟아 몇 가지를 고치고 전환하였다. 참고로 처음 ..

Intro.

안녕하세요? 뼈빌런 블로그의 뼈빌런입니다. 직장에서 퇴사하고 작게나마 토이 프로젝트를 만들어서 관련하여 블로그 글을 써볼까 합니다. 다른 분들에게 도움이 되면 좋지만 저 역시 배웠던 내용도 정리할 겸 나중에 잊어버릴 경우, 다시 찾아보고 빠르게 이해하기도 좋구요. 진행한 프로젝트 대략적인 개요는 아래와 같습니다. 프로젝트명 : Red Horse (Backend) 분류 : 온라인 데이팅 언어 : Python 3.11 프레임워크 : Django 4.2 + Django Rest Framework 3.14 형상주소 : https://github.com/kimfame/redhorse 온라인 데이팅 서비스. 말이 은근 거창해서 부담스럽긴하나 간단하게 매칭해서 채팅방 만들어주는 서비스라고 보면 될 것 같네요. 대규모..