본문 바로가기

Python59

DRF throttling 사용기 스로틀링 개념 스로틀링은 특정 기간 동안 시스템 또는 장치가 만들 수 있는 요청 수를 제한하는데 사용되는 기술입니다. 제한을 사용하는 데는 다음과 같은 몇가지 이유가 있습니다. 시스템 또는 네트워크의 과부하를 방지하려면 : 시스템이 한 번에 너무 많은 요청을 받으면 과부하 상태가 되어 모든 요청을 효과적으로 처리할 수 없습니다. 스로틀링은 시스템이 용량 제한 내에서 유지되도록 하는 데 도움이 됩니다. 악의적인 활동으로부터 보호하기 위해 : 경우에 따라 과도한 요청으로 시스템을 압도하려는 악의적인 공격에 대한 방어 수단으로 제한을 사용할 수 있습니다. 가능한 요청 수를 제한함으로써 시스템은 이러한 공격을 더 잘 견딜수 있습니다. 예를 들면 음식검색 API를 만들었는데 초당 막 1만회 요청이 들어오면 이것을.. 2023. 1. 8.
Django replica 적용기(RDS + Postgresql) Database 이용 시 Replica를 사용하는 이유 High availability(고가용성) : replica 중 하나가 다운되더라도 데이터베이스를 항상 사용할 수 있도록 복제본을 사용할 수 있습니다. 예를 들면 Django에서 사용할 때 어떤 쿼리가 데이터베이스를 길게 잡아먹어서 데이터베이스가 다운되어도 읽기전용 Replica가 살아 있으면 해당 데이터베이스로 대신 사용 가능해서 고가용성으로 사용할 수 있습니다. Load balancing(로드벨런싱) : replica를 사용하여 들어오는 요청의 로드를 여러 시스템에 분산하여 데이터베이스의 성능과 확장성을 향상 시킬 수 있습니다. 예를 들면 데이터베이스 한개에서 Read와 Write를 사용하는데 특정 API를 Read하는 전용 데이터베이스를 생성시.. 2023. 1. 8.
admin action custom 하기 마케터 분의 요청 기존에 생성한 미션 7개를 2번 더 복사해서 14개를 만들어 총 21개를 만들고싶다고 했습니다. 이렇게 해야 단순 반복 action을 줄이고 더 빠르게 action 할 수 있기 때문입니다. 서버 쪽에서 해결 할 수 있는 방법 Django Admin에서 어떤것을 제공하는지 찾아보다가 custom action을 이용하면 해결할 수 있습니다. admin에서 actions를 이용해서 해결 이제 이러한 문제를 해결하기 위해 공식문서에서 action부분을 확인했습니다. Admin Action(개념) Actions as ModelAdmin methods 다음 예시는 함수로 정의된 make_published action을 보여줍니다. 완벽하게 괜찮지만 코드 설계 관점에서 보면 완벽하지 않습니다. Ac.. 2023. 1. 3.
Python Schema library 정리 schema는 JSON/YAML(또는 다른것들)에서 python 데이터 타입으로 변환된 config file, forms, 외부 서비스 또는 command-line 파싱에서 얻은 것과 같은 python 데이터 구조를 검증하기 위한 라이브러리 입니다. Example 다음은 개인 정보가 포함된 항목 목록의 유효성을 검사하여 스키마를 파악하는 간단한 예입니다. from schema import Schema, And, Use, Optional, SchemaError schema = Schema([{'name': And(str, len), 'age': And(Use(int), lambda n: 18 > Schema(int).validate(123) 123 >>> Schema(int).validate('123') .. 2022. 12. 19.
15. Throttling Throttling은 요청이 승인되어야 하는지 여부를 결정하는 점에서 permissions와 유사합니다. throttling은 임시 상태를 나타내며 클라이언트가 API에 대해 수행할 수 있는 요청 속도를 제어하는 데 사용됩니다. permissions와 마찬가지로 여러 개의 throttles를 사용할 수 있습니다. API에는 인증되지 않은 요청에 대한 제한적인 조절 기능이 있고 인증된 요청에 대해서는 덜 제한적인 제한이 있을 수 있습니다. 여러 throttle을 사용하려는 또 다른 시나리오는 일부 서비스가 특히 리소스를 많이 사용하기 때문에 API의 다른 부분에서 서로 다른 제약 조건을 적용해야 하는 경우입니다. 버스트 조절 속도와 지속 조절 속도를 모두 적용하려는 경우에도 여러 조절을 사용할 수 있습니다.. 2022. 8. 25.
lambda,API gateway,s3를 이용한 이미지 업로드 API 만들기[Python] lambda란 AWS lambda는 이벤트에 대한 응답으로 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는 서버리스 컴퓨팅 서비스입니다. 이러한 이벤트에는 전자 상거래 웹 사이트에서 사용자가 장바구니에 항목을 배치하는 것과 같은 상태 변경 또는 업데이트가 포함될 수 있습니다. 또한 lambda는 가용성이 뛰어난 컴퓨팅 인프라에서 코드를 실행하고 컴퓨팅 리소스 관리를 모두 수행합니다. 여기에는 서버 및 운영체제 유지 관리, 용량 프로비저닝 및 자동 크기 조정, 코드 및 보안 패치 배포와 코드 모니터링 및 로깅이 포합됩니다. 개발자는 코드만 제공하기만 하면 됩니다. 링크 : https://aws.amazon.com/ko/lambda/features/ API Gatewy란 Amazon API Gatew.. 2022. 3. 1.