
1. 문제점 사람이 보기가 힘들다 내가 보고 싶은 outcome만 보는 것이 힘들다. 회사 내에서 장고 버전을 1.11 -> 3.2 로 올라가면서 pytest resultlog가 removed가 되고 reportlog로 대체되었는데 정말 가독성이 안좋아졌다. 다음과 같이 생긴 로그들이 기본적으로 제공하는 로그들이다. 제가 할 수 있는 방법은 다음 두가지가 있었습니다. 생성된 파일을 re building하는 방식 애초에 생성할 때 내가 원하는 내용을 출력해주는 방식 저는 두 방식중 생성할 때 내가 원하는 내용을 출력해주는 것이 더 좋은 방법이라고 생각해서 튜닝 작업을 나서기 시작했습니다. 1. 커멘드 라인 추가 설정 group.addoption( "--summary-report-level", '--srl'..

기본 내용 SQL 표준 안에서는 네 종류의 트랜잭션 격리 수준을 정의하고 있다. 격리수준 Dirty Read Nonrepeatable Read Phantom Read Serialization Anomaly PostgreSQL 지원 Read uncommitted 허용 가능 가능 가능 X Read committed 불가능 가능 가능 가능 O Repeatable read 불가능 불가능 허용, PG에서는 없음 가능 O Serializable 불가능 불가능 불가능 불가능 O PostgreSQL에서는 3개의 isolation level을 지원한다. Read uncommitted는 Read committed 처럼 작동한다. PostgreSQL의 동시성 제어의 방식으로 인해 3개의 isolation level을 지원하..

1. EXPLAIN (ANALYZE, COSTS, VERBOSE, BUFFERS, FORMAT JSON) 조회를 하기 전에 위의 제목을 적어주면 상세한 기록이 나온다. 2. 기본 세팅 오늘은 인덱스 구현 방식과 조회를 어떻게 하느냐에 따라 성능의 극대한 차이를 보여주는 예제를 보여주도록 하겠습니다. 우선 기본 모델부터 소개 1. Issue class Issue(models.Model): class Meta: indexes = [ models.Index(fields=['model_type', 'is_complete', 'id'], name='issue_type_complete_id'), ] model_type = models.IntegerField(default=1) is_complete = models...

tuple 또는 item 은 row와 같은 뜻 relation은 table과 같은 뜻 filenode는 테이블 또는 인덱스를 나타내는 id block 또는 page는 같은 뜻으로 테이블에 저장되는 8KB 세그먼트 정보를 나타낸다. heap 또는 heap file은 정렬되지 않은 많은 사이즈의 레코드를 의미한다. CTID는 테이블 내의 특정 row의 물리적 위치를 나타낸다. OID는 오브젝트 식별자로서 역할 PostgreSQL database location select oid, datname from pg_database; PostgreSQL table location 1GB보다 더 커지게 되면 기가 세그먼트 단위로 쪼개지게 된다. 첫 번째는 기존과 같은 위치에 존재하고, 부속물들은 뒤에 suffix가 ..

대부분의 데이터베이스는 상대적으로 속도가 느린 디스크와 빠른 Ram으로 구성된 메모리 계층 구조로 돼 있다. 따라서 영구 저장소 접근 횟수를 줄이기 위해 페이지를 메모리에 캐시하고 스토리지 계층에서 캐시된 페이지를 재요청하면 캐시에서 반환한다. 만약에 디스크에 있는 해당 페이지에 있는 값이 바뀌지 않았다면 캐시 페이지를 재사용할 수 있다. 이를 가상 디스크라고 부른다. 가상 디스크 읽기 작업은 요청된 페이지가 메모리에 없을 경우에만 물리적 저장소에 접근하게 된다. (페이지 캐시 또는 버퍼 풀) 페이지 캐시는 디스크에서 읽은 페이지를 메모리에 캐시한다. 아직 캐시되지 않은 페이지를 디스크에서 메모리로 복사하는 작업을 페이징이라고 한다. 아직 디스크로 플러시되지 않은 변경된 페이지는 더티(dirty) pag..

HTTP GET 캐시 기능?! https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/GET 어느날 한 번 http에 대해서 공부해야겠다고 생각하고 하다가 캐시 가능이라는 것이 눈에 띄었다. 오?! 뭐지 캐시가 된다고 ?!! 그래서 눌러서 자세히 한 번 봤다. 응답에 대해서 캐시가 가능하다는 것이다. 다음 요청에 대한 응답 값으로 해당 캐시 값으로 대체한다는 것이다. 여기에서 나는 두개의 의문점을 가졌다. 1. 디테일 정보에 대해서도 각 아이디에 대해서 캐시를 할까? 2. 그럼 디비를 진짜 들르지 않고 가져올까? 그래서 정말 간단한 세팅으로 준비해봤다.(저는 아무래도 장고가 편해서 장고로 프로젝트를 구성했습니다.) 모델 class Memo(models.Model..

이 글을 쓰게된 계기는 fast api 공식문서와 sqlalchemy 공식문서대로 했을 때 테스트를 진행했을 때 멱등성 있게 진행이 안되었기에 다른 사람들이 이 글을 보고 조금이나마 도움이 되길 하는 생각으로 작성하게 되었습니다. 제가 생각했을 때에도 그렇게 효율적이지는 않은 것 같지만 제가 지금 할 수있는 가장 확실한 방법이기에 글을 남기고자 합니다. 계기 처음에 fast api 공식문서대로 진행을 하였다. def override_get_db(): try: db = TestingSessionLocal() yield db finally: db.close() app.dependency_overrides[get_db] = override_get_db client = TestClient(app) 근데 문제점이..
- Total
- Today
- Yesterday
- thread
- Collections
- Python
- docker-compose
- 그래프
- PostgreSQL
- 프로그래머스
- env
- Linux
- 백준
- headers
- Command Line
- 파이썬
- ubuntu
- 2021 KAKAO BLIND RECRUITMENT
- 카카오
- Pattern
- Spring
- 면접
- 알고리즘
- dockerignore
- BFS
- setattr
- Celery
- 자바
- Java
- postgres
- DRF
- docker
- django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |