본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

이론

BaseModel과 BaseSettings (feat.Pydantic)

 


pydantic_settings BaseSettings 애플리케이션 설정을 관리하기 위한 Pydantic클래스.

코드에 직접 적지않고 환경변수 .env 파일또는 운영체제 환경변수에 저장된 설정값을 자동으로 읽어오는 기능.

api키, 데이터베이스 주소, 비밀번호등을 코드에 하드코딩하면 보산상 좋지않으니 설정을 안전하고 일관되게 관리할수있도록 도와준다.

https://standout.tistory.com/1893

 

Pydantic으로 basemodel 와Field() 사용하기: schema, Pydantic, 기본값(default), 설명(description), 예시(example),

PydanticPython에서 데이터를 검증하고 관리하기 위한 라이브러리 데이터의 구조를 정의하는 클래스 BaseModel, 설정을 관리하는 클래스 BaseSettings가 있다. BaseModelPydantic에서 제공하는 부모클래스request

standout.tistory.com

 

 

BaseModel과 차이는 요청과 응답데이터 json데이터를 검증한다면 basesettings는 설정을 읽고 검증한다는것. 

 

 

 

BaseModelBaseSettings

요청(Request)과 응답(Response) 데이터를 정의 프로그램 설정(Configuration)을 정의
JSON 데이터를 검증 환경변수(.env, OS 환경변수)를 읽고 검증
API 요청/응답에서 사용 API 키, DB 주소, 포트 번호 등 설정 관리에 사용
FastAPI에서 Request/Response 스키마로 사용 애플리케이션 설정 객체로 사용

 

 

 

BaseModel은 사용자가 주고받는 데이터(요청/응답)를 위한 모델

{
    "username": "admin",
    "password": "1234"
}
from pydantic import BaseModel

class LoginRequest(BaseModel):
    username: str
    password: str

request = LoginRequest(
    username="admin",
    password="1234"
)

print(request.username)
print(request.password)

 

 

 

BaseSettings는 프로그램이 사용할 설정값(API 키, DB 주소, 포트 등)을 위한 모델

API_KEY=abcd1234
MODEL=gemini-2.5-pro
PORT=8000
from pydantic_settings import BaseSettings

class Settings(BaseSettings):
    api_key: str
    model: str
    port: int

settings = Settings()

print(settings.api_key)
print(settings.model)
print(settings.port)