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..
Framework
gin 에서 에러 핸들링을 처리 할 때, 보통 middleware 를 하나 만들어 처리를 한다. 검색을 했을 때, 괜찮은 방법들이 없어서 생각하며 만들었는데 지금 다시 찾아보니까 이 방법 괜찮은것 같다. (적용을 한번 해보고 더 나은 방식으로 할 필요가 있겠다) https://www.mo4tech.com/use-middleware-for-global-error-handling-in-gin.html Use middleware for global error handling in Gin - Moment For Technology mo4tech.com (Moment For Technology) is a global community with thousands techies from across the globa..
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을..