Framework/Django

Django에서 redis.exceptions.AuthenticationError Authentication required 오류가 발생했을 때, redis는 password 가 있는데 Django에서는 password 설정을 해주지 않은 것이다. redis가 설치되어있는 server로 가서 redis conf를 확인해보자. $ vi /etc/redis/redis.conf requirepass를 검색해보면 비밀번호가 무엇인지 알 수 있다. 예를 들어 Django에서 밑에 사진처럼 사용하면 된다. redis 선언되어있는곳에서 Host, Port, Password까지 확인해주면 끝! CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "L..
CORS 교차 출처 리소스 공유(Cross-origin resource sharing, CORS), 교차 출처 자원 공유는 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다. URL 구조 출처(origin)라는 말이 어려운데 출처란 위 그림(URL 구조)에서의 Protocol과 Host, Port까지 모두 합친 것을 의미 CORS 동작 원리 예를 들면 다음과 같을 때 발생한다. 다른 도메인(예: example.com에서 test.com으로) 다른 하위 도메인(예: example.com에서 petstore.example.com으로) 다른 포트(예: example.com에서 example.com:10777으로) 다른 프로토콜(예: http..
보통 웹훅을 사용하기 위한 코드를 구현하고 웹훅을 받는 부분에 대해 생각을 해본적이 없을 것이다. 현재 회사에서 메신저를 담당하고 있고 웹훅 수신(webhook receiver)를 구현 할 수 있는 기회가 생겨서 얼마 전 (2022년 2월) 에 배포를 했고, 약 4개월 정도 하루에 1000개 정도의 웹훅을 수신 하고 있다. Django 로 웹훅 수신 (webhook receiver) 부분을 구현했고 고민 했던 부분들을 기록에 남기려고 한다. 누군가에게 도움을 받거나, 방향성을 제시 받은 부분이 아니라 옳지 않은 방법 일 수도 있지만 나중에 다시 보았을 때 무엇을 고려하지 못했는지 깨달으면 더 좋을 것 같아서 남기는 것이 기록에 좋다고 생각했다. 1. 토큰 웹훅을 사용하면 보통 각자 고유의 토큰이 발급 된..
@cached_property 를 사용한 경험을 이야기 하려고 한다. Django github cached_property class cached_property(object): """ Decorator that converts a method with a single self argument into a property cached on the instance. Optional ``name`` argument allows you to make cached properties of other methods. (e.g. url = cached_property(get_absolute_url, name='url') ) """ def __init__(self, func, name=None): self.func ..
궁금했다. 왜 Django models 에 @property 를 만드는지 Django 에 대해 지식이 얕은게 몸소 느껴지는 순간이다. 왜 models 안에 field 로 만들지 않고 @propery로 빼 놓았을지 몇가지 생각을 해봤었고.. 나중에 migrations 하기가 번거로워서 그랬다든지.. field 로 넣기가 힘들었다던지.. 정말 다행인건 스스로 심리적으로 여유 생겨서인지 올해부터는 하나하나 깊게 보고있다. 그리고 올해 상반기는 Django 깊게 볼 생각이다. 느낌적으로는 아는데 왜? 이러한 부분들을 @property 로 선언해서 사용하는지 설명을 못하는 부분이였다. 많은 글들을 읽어 보았고 .. Computed attributes (계산된 속성) from django.db import mode..
글 작성 시점은 incoming webhook 제공을 위해 개발 중이며(4일차) 백엔드는 거의 다 틀을 잡아 놨기 때문에 개발 하면서 사용한 ratelimit 에 대해 이야기 하려고 한다. (웹훅 개발이 끝나고 배포 나가면 기록을 남길 예정) 외부에 서비스를 제공해야 되므로 rate limit 이 존재 해야 될 것 같고 특히, 예를 들어 60 requests per minute 그리고 ip 이런 조건들을 생각했어야 했기 때문에 괜찮은 방법이 없는지 생각을 많이 했던 것 같다. 물론, 이제 갓 2년차인 개발자인 내가.. 개발하면서 고민하고 걱정하는 부분들은 이미 누군가가 고민을 했고, 개발을 했고, 오픈 되어 있다. Python 으로 요청을 받을지 Go 언어로 요청을 받을지 고민을 해보고.. Python을..
Django models 에서 보통 만들다 보면 생성날짜, 수정날짜는 많이 생성하는 컬럼인데 차이점을 정확히 알고 넘어가자 auto_now VS auto_now_add auto_now=True 사용은 수정일자를 표현할 때 사용하면 되고 auto_now_add=True 사용은 생성일자를 표현할 때 사용하면 된다. auto_now=True 은 models 이 가 save 될 때마다 date.today() 로 갱신 auto_now_add = True 는 models 가 최초 저장 될 때 date.today() insert
django 의 model 을 수정하고 가끔 이런 메시지를 볼 수 있을텐데 Database 안에 값들이 이미 존재하고 그 필드에 대해 처리 방식을 물어보는 django 의 친절함이라고 생각하면 된다. python manage.py makemigrations You are trying to add the field '필드명' with 'auto_now_add=True' to '모델명' without a default; the database needs something to populate existing rows. 1) Provide a one-off default now (will be set on all existing rows) 2) Quit, and let me add a default in mo..
임쟌
'Framework/Django' 카테고리의 글 목록