일반적으로 모든 모델에 공통된 필드를 편하게 넣기 위해서 BaseModel을 만들어 사용하곤 한다. 필자의 경우엔 FastAPI의 SQLModel에서 Base 모델을 만들고 싶어서 아래와 같이 만들었다. import re from sqlalchemy.ext.declarative import declared_attr from sqlmodel import SQLModel def camel_to_snake_case(name): # 정규 표현식을 사용하여 CamelCase를 snake_case로 변환합니다. name = re.sub("([a-z0-9])([A-Z])", r"\1_\2", name) return name.lower() class Base(SQLModel): # id: int = Field(prim..
Backend/FastAPI
파이썬의 객체는 _로 시작하는 속성을 가리는 은닉화의 속성을 가지고 있다. 그렇기 때문에 SQLModel에서도 _를 포함한 필드를 가져올 수 없는 이슈가 있다. 필자는 작업 중에 사용한 테이블에 _TIMESTAMP 와 같은 필드가 있어 이런 이슈를 직면하게 되었다. 이 이슈를 해결하기 위해 디렉터분께 질문을 드렸고, SQLModel은 기존의 SQLAlchemy의 컬럼을 사용할 수 있는 sa_column이란 프로퍼티를 찾아주셨다. sa_column은 SQLAlchemy Column의 줄임말이다. 아래는 일반적인 Post 모델이다. class Post(Base, table=True): id: int = Field(primary_key=True, index=True) name: str = Field() aut..
docker-compose.yml stdin_open, tty: true 옵션을 넣어서 서버에 접속해서 스크립트를 실행할 수 있게 만듬 version: "3.9" services: recommend: container_name: recommend build: context: . volumes: - ./:/var/www # ports: # - 4000:4000 environment: - TZ=Asia/Seoul stdin_open: true tty: true Dockerfile requirements.txt 를 이용해서 디펜던시 관리 FROM python:3.9.15 WORKDIR /usr/src/app COPY requirements.txt ./ RUN pip install --no-cache-dir -..