데브허브 | DEVHUB | Pydantic tip - the @computed_field decorator!Pydantic tip - the @computed_field decorator!
@computed_field는 Pydantic 모델에 동적이고 읽기 전용 필드를 생성하여, 다른 필드 값에 기반한 계산된 값을 출력에 포함시킬 수 있게 합니다. 💡
- 이 필드들은 사용자 입력으로 제공되지 않으며, 모델의 다른 필드들을 사용하여 계산됩니다. 🔒
- 일반적인 Python
@property 데코레이터만으로는 모델을 딕셔너리나 JSON으로 직렬화할 때 계산된 필드가 포함되지 않습니다. ❌
@computed_field를 사용하면 model_dump() 또는 model_dump_json() 호출 시 계산된 필드가 직렬화된 출력에 자동으로 포함됩니다. ✅
- FastAPI와 같은 API 프레임워크에서 응답 데이터에 파생된 값을 쉽게 추가할 수 있으며, 이는 API 문서(OpenAPI/Swagger UI)에도 자동으로 반영됩니다. 🚀
- Django Ninja와 같이 Pydantic 모델을 사용하는 다른 프레임워크에서도 동일하게 작동하여, 계산된 필드를 API 응답에 포함시킬 수 있습니다. 🌐
- 예시로는 주문 총액과 할인율로부터 할인 금액 및 최종 할인된 총액을 계산하거나, 섭씨 온도에서 화씨 온도를 계산하는 경우가 있습니다. 📊