python 3

Pydantic BaseSettings로 환경변수 관리하기 – @property 패턴 적용기

https://kojub.tistory.com/24 Pydantic.BaseSetting을 사용한 환경변수 관리.env 파일은 중요한 설정과 변수들을 정의한다. DB 정보, URL, API Key 등과 같은 민감한 정보를 코드에 하드코딩하지 않고 관리할 수 있어 필수적인 파일이다.그러나 개발⸰테스트⸰배포 환경이나kojub.tistory.com 한 5개월 전에 Pydantic BaseSetting으로 환경변수 관리하는 config파일을 구성한 적 있다.import osfrom dotenv import load_dotenvfrom pydantic_settings import BaseSettingsload_dotenv()def _getenv(name: str, default: str = None) -> str..

@asynccontextmanager로 DB연결 및 세션관리하기

사이드 프로젝트를 FastAPI와 MongoDB를 조합해서z 진행하고 있는데, 오늘 DB 연결과 세션 관리를 하다가  @asynccontextmanager 어노테이션을 쓰게 됐다. 원래는 그냥 평소처럼 함수 하나 만들어서 처리하려고 했는데, 이걸 쓰면 좀 더 깔끔하게 정리될 것 같아서 시도해봤다. ( 그동안은 try ~ except ~ finally 형태를 주로 썼다. )@asynccontextmanager로 정의한 함수를 어떻게 사용했는지 부터 살펴보자. ( get_db 함수 )routes/users.pyfrom beanie import PydanticObjectIdfrom fastapi import APIRouter, Dependsfrom app.db.mongodb import get_dbfrom a..

black으로 코드스타일 포매팅

괄호 안에 들어갈 내용은 앞뒤로 한 칸씩 띄워서 작성하는 거.연산자 앞뒤로도 한 칸씩 띄워서 작성하는 거.성격이 조금이라도 다른 로직의 경우 두 번 개행을 해서 작성하는 거....등등, 로직 자체에는 영향을 주지 않지만, 누구나 사소하지만 신경 쓰는 고유한 스타일이 있듯이, 나도 꼭 지켜야만 속이 시원한 작성 습관들이 있다. 이걸 매번 신경 쓰면서 작업하다 보면, 혼자 코딩할 때도 번거롭고 가끔 놓치기도 한다.하지만 더 큰 문제는 여러 사람이 함께 작업하는 회사 환경이다.띄어쓰기나 개행 스타일이 제각각이다 보니 코드 가독성이 떨어지고, 통일감이 없어 퍽 신경쓰인다.( 일하는데 집중하면 사실 잘 안보일 때가 많지만, 한 번 신경쓰이면 계속 신경쓰이는 안읽음 메세지 표시 같달까 )그래서 Black처럼 코드 ..