일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- DRF
- DjangoRestFramework
- CI
- annotate
- testcase
- django
- DjangoCache
- CD
- nestedfunction
- Git
- apitestcase
- Coroutine
- docker
- EC2
- 백준
- aws
- 코루틴
- database
- racecondition
- Python
- Continuous Deployment
- dry-yasg
- 도커
- Continuous Delivery
- aggregate
- to_attr
- F객체
- QuerySet
- Prefetch_related
- Transaction
- Today
- Total
목록Database (4)
BackEnd King KY

alembic에서 metadata를 왜 설정해야 할까 티스토리로 보기 불편하신 경우, Github를 통해 보실 수 있습니다. 출처는 alembic 1.9.2 공식문서 입니다. Intro 현재 회사에서 FastAPI를 이용하다 보니 sqlalchemy를 이용하고 있습니다. Django의 경우, 굳이 마이그레이션 툴을 설치하지 않아도 Django 하나만 있으면 할 수 있는데 sqlalchemy는 alembic이란 라이브러리를 이용합니다. alembic 설정 같은 건 이미 많이 나와있으니, 제가 겪은 상황에 대해 포스팅하려고 합니다. Django 마이그레이션과 alembic Django에선 python manage.py makemigrations를 입력하면 데이터베이스에 반영해주기 위한 마이그레이션 파일을 만..

✔️What is Indexing? 위키백과에 따르면, 인덱싱이란 테이블에 대한 동작 속도를 높여주는 자료 구조를 일컫는 말입니다. 인덱스는 테이블 내의 1개의 컬럼 혹은 여러 개의 컬럼을 이용하여 생성될 수 있습니다. 고속 검색뿐만 아니라 레코드 접근과 관련 효율적인 순서 매김 동작에 대한 기초를 제공합니다. 인덱스를 저장하는 데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작습니다. 왜냐하면 보통 인덱스는 키-필드만 갖고 잇고, 테이블의 다른 세부 항목들은 갖고 있지 않기 때문입니다. 그래서 인덱스로 지정된 컬럼에 대해 조회를 할 때 별도로 저장된 디스크에서 먼저 찾고 저장된 실제 테이블로 찾아갑니다. 말 그대로 목차 그 자체라고 볼 수 있습니다. 책에서 목차를 통해 원하는..

✔️ ACID RDBMS는 트랜잭션의 기능을 보장할 수 있도록 ACID라고 하는 4가지 성질을 제공합니다. A : 원자성(Atomicity) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력입니다. 아마 트랜잭션에서 가장 많이 드는 예시 중 하나인 계좌이체로 예시를 들겠습니다. 계좌이체는 성공할 수도, 실패할 수도 있지만 보내는 쪽에서 돈을 빼오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안됩니다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것입니다. 즉, 트랜잭션의 작업들이 데이터베이스에 모두 반영되던가 아니면 아예 반영이 안된다는 뜻입니다. C : 일관성(Consistency) 트랜잭션이 성공적으로 완료되면 언제나 일관성있는 ..

✔️ Transaction 데이터를 다루는 데 있어 꼭 알아야 할 트랜잭션입니다. 트랜잭션이란 일련의 작업들을 하나의 단위로 실행하는 것을 뜻합니다. 일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 실패하게 됩니다. 오늘은 Commit과 Rollback에 대해 알아본 뒤, 내일 트랜잭션의 가장 큰 4가지 특징인 ACID에 대해 포스팅 하겠습니다. ✔️ Commit & Rollback 트랜잭션 상의 모든 작업이 문제없이 성공하면 Commit이 됩니다. 즉, 데이터베이스에 실제로 반영이 된다는 뜻입니다. 우리가 GitHub에 Commit을 하는 건 작업이 완료되었고 Repository에 반영하겠다는 의미입니다. 데이터베이스에 대입해보면, GitHub라는 DB에 작업을 반영하겠다는 ..