본문 바로가기

분류 전체보기53

BaseDTO Pydantic BaseDTO 클래스는 Pydantic 라이브러리의 BaseModel을 상속하여 데이터 전송 객체(DTO)를 정의하는 데 사용됩니다. 이 클래스는 FastAPI 같은 프레임워크에서 데이터 검증 및 직렬화/역직렬화를 쉽게 하기 위해 사용됩니다. Pydantic 모델은 데이터를 정의하고 유효성을 검사하는 데 매우 유용합니다.코드 설명from pydantic import BaseModel from typing import Optional class BaseDTO(BaseModel): class Config: orm_mode = True use_enum_values = True1. BaseDTO(BaseModel):BaseDTO는 **Pydantic의 BaseModel**을 상속받아 생.. 2024. 9. 30.
docker 최적화 경량화 이미지 빌드를 위한 multistage build 파이썬 멀티 스테이지 빌드 예제:# Stage 1: 빌드 단계 (Builder Stage)FROM python:3.10-slim AS builder# 필요한 의존성 설치RUN pip install --upgrade pipCOPY requirements.txt .RUN pip install --no-cache-dir -r requirements.txt# 파이썬 소스코드를 복사COPY . /app# Stage 2: 최종 실행 환경 (Final Stage)FROM python:3.10-alpine# 빌더 단계에서 설치된 라이브러리 복사COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages.. 2024. 9. 30.
파이썬 @staticmethod, raise, pydantic 객체의 .dict() 1. @staticmethod:의미: @staticmethod는 Python 클래스의 메서드에 붙이는 데코레이터로, **정적 메서드(static method)**를 정의할 때 사용됩니다. 정적 메서드는 클래스 인스턴스에 접근하지 않고, 클래스 자체와도 관련이 없는 메서드를 정의할 때 사용됩니다.설명:정적 메서드는 인스턴스(self)나 클래스(cls)에 접근하지 않으며, 단순히 클래스의 일부로 존재하는 함수일 뿐입니다.일반적으로 인스턴스 상태나 클래스 상태와 관계없이, 입력값만으로 동작하는 함수에 사용됩니다.이 코드에서 **CategoryService.get_category**와 **CategoryService.create_category**는 정적 메서드이기 때문에, 해당 메서드를 호출할 때 인스턴스를 .. 2024. 9. 26.
fastapi 라우팅, 의존성 주입 기법 1. prefix:의미: FastAPI의 라우터 그룹에서 공통 경로를 지정하는 옵션입니다.설명: APIRouter를 사용할 때 prefix를 지정하면, 해당 라우터의 모든 경로 앞에 자동으로 공통된 경로가 추가됩니다.예를 들어, **prefix="/category"**로 설정된 라우터는 /category/로 시작하는 모든 경로에 대해 동작합니다.즉, 경로 /category 아래의 API 엔드포인트들을 처리하는 라우터가 됩니다.예시:python코드 복사@router.get("/") # 실제 경로는 "/category/"2. tags:의미: API 엔드포인트를 그룹화하기 위한 라벨입니다.설명: FastAPI의 자동 문서화 기능에서 tags를 사용해 API들을 그룹화할 수 있습니다.API 문서에서 **"cat.. 2024. 9. 26.