규도자 개발 블로그
sqlite memdb의 맹점 (※: 테스트할 때 주의할 점) 현재 사내의 거의 모든 프로젝트가 fastAPI + TDD 기반으로 만들어지고 있는데 테스트를 돌릴 때는 빠른 테스트 실행을 위해서 sqlite의 memdb를 이용하고 있다. 하지만 실제 실행환경과 pytest라는 커맨드를 이용한 테스트 환경에 조금 다른 점이 존재해서 개발 도중에 sync DB에서 사용하는 주소 sqlite:///:memory:와 sqlite+aiosqlite:///:memory:두 개를 모두 사용을 했는데 이상하게 한쪽에서 만든 table을 다른 테이블에서 조회하지 못해서 실험으로 로컬에서 실행할 때는 파일기반의 주소로 바꾸고, 테스트를 돌릴 때는 다시 메모리 db 주소로 바꿔서 진행하는 어이없는 짓을 잠깐 했었다. 상식적..

github 검색 팁: 특정 파일 이름 내에서 검색하기 정말 간단하다. 검색창에 filename:{keyword}를 치면 된다. 나의 경우 특정 라이브러리를 사용하고 있는 프로젝트가 이 라이브러리를 어떻게 활용하고 있는지 검색할 때 주로 사용하곤 하는데 조금 더 구체적인 예를 들면 python의 dependency-injector를 다른 프로젝트에서는 어떻게 사용하고 있는지 참고가 필요할 땐 dependency-injector filename:*.toml이렇게 검색을 하면 pyproject.toml에 dependency-injector가 poetry로 추가돼있는 프로젝트들을 찾아볼 수 있다. 정말 고맙게도 와일드카드를 지원해준다. 검색 결과를 보면 이런 형태이다. 이밖에도 정말 유용하지만 많은 사람들이 ..
crybaby: 오류메시지를 slack으로 보내기 위한 exception handler 최근에 오픈소스 프로젝트를 또 하나 시작했다. 바로 crybaby라는 건데 sentry처럼 오류가 발생했을 때 해당 오류내역을 slack으로 받을 수 있게 해주는 파이썬 라이브러리이다. 아니~ 센트리게 있는데 뭐하러 이걸 써!? 하겠지만 sentry를 통해 exception을 slack으로 보내는 기능은 팀플랜일 때부터 지원하는 기능이다. 그러니까 "유료"라는 의미이다. 그래서 내 개인프로젝트에서 간단하게 쓸만한 라이브러리를 만들어서 오픈소스화 해보자 하는 마음에서 제작하게 되었다. pip install crybaby 명령어로 설치할 수 있고 소스 저장소는 https://github.com/jujumilk3/cryba..

FastAPI endpoint구성 응용 - 1. Path의 Datatype별로 분기 나누기 이미 누군가가 포스팅해놨으면 안쓰려고 했는데 아쉽게도 하나도 발견하질 못해서 내가 직접 작성한다. 영어로도 이부분에 대해서 포스팅을 해둔 사람이 없고 심지어는 FastAPI 공식 튜토리얼에도 누락된 부분이라 나중에 기회가 된다면 직접 작성해넣을 예정이다. 알만한 사람들은 다 아는 사실이지만 FastAPI는 거의 Pydantic과 Starlette으로 만들어진 프레임워크이다. 그래서 여기에서 제공하는 기능들은 거진 제공한다고 생각하면 된다. 그리고 거기엔 FastAPI 문서에는 없지만 Starlette에만 적혀있는 부분이있다. 그중 하나가 endpoint에서 Pathd의 DataType별로 분기를 치는 부분이다. f..