🌈 프로그래밍/TIL

    [ TIL ] 데이터베이스 정합성, DB Concurrency

    DB Concurrency 여러 사용자가 동시에 서버에 요청을 하고, 각각의 요청은 모두 다를 수 밖에 없다. 어떤 요청은 새롭게 데이터베이스에 데이터를 쓸 수 있고, 어떤 요청은 데이터를 조회하기 위해서 요청을 보낼 수 있다. 이번 포스팅에서는 데이터베이스 정합성과 관련된 내용을 간략하게 정리해보려고 한다. 데이터베이스의 동시성? DB에 다수의 사용자가 동시에 접근하는 일은 비일비재 하다. 동시성은 이러한 상황에서 Transaction이 순차적으로 실행되는 것이 아니라, 순서에 상관없이 동시에 실행되는 것을 의미한다. 따라서, 개발자는 동시성을 신경쓰고 관리해 줘야 한다. Transaction 격리 수준 RDBMS에서 처리하는 방식을 알아보자. 우선, Transaction 격리 수준이란 여러 Trans..

    [ FastAPI ] pytest를 사용해서 테스트 코드를 작성해보자

    Git Repository GitHub - tasddc1226/fastapi Contribute to tasddc1226/fastapi development by creating an account on GitHub. github.com pytest를 사용해서 간단하게 테스트를 해보자. 사전 준비사항으로 작성된 fast api가 있어야 한다. pip install pytest를 통해서 pytest module을 설치한다. 비동기에 대한 테스트를 위해서는 추가로 pytest-asyncio까지 설치해주자. For Test 아래와 같이 새로운 유저를 생성하는 api가 있다. 테스트를 해보자! @router.post("/", status_code=status.HTTP_201_CREATED, response_mo..

    [ TIL ] 모든 python 파일의 코드 스타일을 통일해보자 (with. Black)

    1. 프로젝트에 black code formatter 적용하기 사용한 명령어 # .gitignore가 있는 경로에서 ❯ black myproject -l 88 --exclude migrations 한 line의 길이 수를 88로 설정하고, 마이그레이션 파일들은 제외한다. 위와 같이 실행하면, 실행 결과로 총 몇 개의 파일들이 수정되었는지 결과가 콘솔에 찍히게 된다! 2. black 적용 방법 1.1 프로젝트 루트 경로에. vscode 파일을 생성 후 settings.json 파일 생성 1.2 settings.json 파일에 아래의 내용을 복붙 { "python.formatting.provider": "black", "python.formatting.blackArgs": [ "--line-length", ..

    [ TIL ] DB dump 스크립트를 활용해 로컬 DB 환경 구축하기

    최근 새롭게 개발팀에 합류하게 되었고, 프로젝트를 로컬 환경에서 실행하기 위해서 지난주에 개발 환경을 세팅하였다! 로컬 환경을 세팅하려면, DB를 dump 뜨는 과정이 필요하였는데, 처음 해보는 과정인지라 낯설었다.. 사실 모든 과정이 나에게는 낯설고 어렵게만 느껴지지만, 어서 빨리 적응할 수 있도록 해야겠다! 팀 공유문서를 열심히 보면서, 최근 어떤 작업을 진행하였고 이슈는 무엇이 있는지 확인하는 것부터 익숙해지자 💪 아무튼 다시 로컬 환경 이야기로 돌아와서, 프로젝트를 우선 끌어오고, 필요 모듈들을 설치하는 과정부터 시작하였다. 그런데, mysqlclient 모듈이 설치가 진행되지 않았다. 그래서 따로 내 가상 환경에서 mysqlclient를 설치(2.1.1)해준 뒤, 나머지 모듈들을 설치해줌으로 해..