본문 바로가기

분류 전체보기232

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.
Django multiple DB 문서정리 django multiple databases Multiple databases django는 여러개의 데이터베이스와 상호작용할 수 있습니다. 이것을 사용하기 위해서는 몇 가지 추가 단계를 수행해야 합니다. Defining your databases 맨 처음으로 해야할 일은 database를 한개 이상 사용한다고 서버에 알려줘야합니다. 이것은 database setting을 통해 작성할 수 있습니다. 이 설정은 Django 전체에서 특정 데이터베이스를 참조하는 방법인 데이터베이스 alias을 해당 connection에 대한 setting dictionary에 매핑합니다. 내부 dictionary의 설정은 DATABASE 설명서에 자세히 설명되어 있습니다. 데이터베이스는 선택한 alias를 가질 수 있습니.. 2022. 12. 19.
데이터 베이스에 외래 키 제약 조건이 없는 9가지 이유(참조 무결성 검사) - 번역 외래키가 있으면 문제가 있는 부분들 잠재적인 데이터 무결성 문제 외래 키가 없다는 명백한 문제는 데이터베이스가 참조 무결성을 시행 할 수 없으며 상위 레벨에서 제대로 처리되지 않으면 일관성 없는 데이터 테이블 관계가 명확하지 않다 데이터베이스에서 외래 키가 부족하여 눈에 띄지 않는 또 다른 부정적인 영향은 스키마를 모르는 사람이 올바른 테이블을 찾고 테이블 관계를 파악하는 데 어려움을 겪는다는 것입니다. 이로 인해 데이터베이스에서 쿼리하고 report하는 데 심각한 문제가 발생할 수 있습니다. 왜? 데이터베이스에 foreign key를 없게 하나 데이터베이스에 외래 키가 없는 이유에 대해 알겠습니다. 아래에 제시된 이유는 데이터베이스에서 외래 키 제약 조건을 사용하지 말 것을 권장하지 않습니다. 그것은 .. 2022. 10. 10.
Datagrip ssh tunnel 오류 해결 발생하는 문제 이런식으로 연결하려고하면 다음과 같은 에러가 나옵니다 → 만약 모든 데이터베이스 툴에서 발생하면 아 터널링 설정을 잘못한건가? 라는 생각이 들 수 있었는데 tableplus에서는 정상동작해서 datagrip에서만 발생하는 에러라고 생각했습니다.. 에러를 발견하기 위한 노력? 먼저 ssh 에러 로그를 확인하기 위해 Help→Diagnostic Tools→debug log settings에 다음과 같은 항목들을 추가했습니다 #com.intellij.ssh #com.jetbrains.plugins.webDeployment 그 후 Help → Collect Logs and Diagnostic Data 에서 log를 export한 후 확인하겠습니다 발생한 에러 종류 /ssh/etc/ssh_confi.. 2022. 10. 3.
django transaction(장고 트랜잭션) 트랜잭션 트랜잭션이란 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을수 있는 시스템을 의미합니다. 트랜잭션의 목적 사용자가 데이터베이스 완전성(integrity)유지를 확신하게 합니다. 데이터베이스 서버에 여러 개의 클라이언트가 동시에 액세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용합니다. 트랜잭션 예시 A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립.. 2022. 8. 25.
15. Throttling Throttling은 요청이 승인되어야 하는지 여부를 결정하는 점에서 permissions와 유사합니다. throttling은 임시 상태를 나타내며 클라이언트가 API에 대해 수행할 수 있는 요청 속도를 제어하는 데 사용됩니다. permissions와 마찬가지로 여러 개의 throttles를 사용할 수 있습니다. API에는 인증되지 않은 요청에 대한 제한적인 조절 기능이 있고 인증된 요청에 대해서는 덜 제한적인 제한이 있을 수 있습니다. 여러 throttle을 사용하려는 또 다른 시나리오는 일부 서비스가 특히 리소스를 많이 사용하기 때문에 API의 다른 부분에서 서로 다른 제약 조건을 적용해야 하는 경우입니다. 버스트 조절 속도와 지속 조절 속도를 모두 적용하려는 경우에도 여러 조절을 사용할 수 있습니다.. 2022. 8. 25.