FastAPI 버전에 대해서
FastAPI 버전에 대해서 (About FastAPI versions)
FastAPI는 이미 많은 애플리케이션과 시스템에서 프로덕션에 사용되고 있어요. 테스트 커버리지도 100%로 유지되고 있고요. 하지만 개발 속도는 여전히 빠르게 진행 중이에요.
새 기능이 자주 추가되고, 버그도 꾸준히 수정되며, 코드는 계속해서 개선되고 있어요.
그래서 현재 버전이 여전히 0.x.x인 거예요. 이는 각 버전이 잠재적으로 호환성을 깨는 변경(breaking changes) 을 포함할 수 있다는 걸 반영해요. 이는 시맨틱 버저닝(Semantic Versioning) 규칙을 따르는 거예요.
지금 바로 FastAPI로 프로덕션 애플리케이션을 만들 수 있어요(아마 이미 한동안 그래 왔을 거예요). 여러분의 나머지 코드와 올바르게 동작하는 버전을 사용하기만 하면 돼요.
출처: 공식문서
fastapi 버전 고정하기
가장 먼저 해야 할 일은 사용 중인 FastAPI 버전을, 여러분의 앱에 대해 올바르게 동작한다고 확인된 최신 특정 버전으로 " 고정(pin) "하는 거예요.
예를 들어 앱에서 0.112.0 버전을 쓴다고 해 볼게요.
requirements.txt 파일을 쓴다면 버전을 이렇게 지정할 수 있어요:
fastapi[standard]==0.112.0
이건 정확히 0.112.0 버전을 사용한다는 뜻이에요.
또는 이렇게 고정할 수도 있어요:
fastapi[standard]>=0.112.0,<0.113.0
이건 0.112.0 이상이지만 0.113.0 미만인 버전을 사용한다는 뜻이에요. 예를 들어 0.112.2는 여전히 허용되는 거죠.
uv, Poetry, Pipenv 같은 다른 도구로 설치를 관리한다면, 그 도구들에도 패키지의 특정 버전을 정의하는 방법이 각각 있어요.
사용 가능한 버전
사용 가능한 버전(예: 현재 최신 버전이 무엇인지 확인)은 Release Notes 에서 볼 수 있어요.
버전에 대해서
시맨틱 버저닝 규칙에 따라, 1.0.0 미만의 모든 버전은 잠재적으로 호환성을 깨는 변경을 추가할 수 있어요.
FastAPI는 또한 " PATCH" 버전 변경은 버그 수정과 호환성을 깨지 않는 변경을 위한 것이라는 규칙도 따라요.
💡 팁: "PATCH"는 마지막 숫자예요. 예를 들어
0.2.3에서 PATCH 버전은3이에요.
그래서 이런 식으로 고정할 수 있어야 해요:
fastapi>=0.45.0,<0.46.0
호환성을 깨는 변경과 새 기능은 " MINOR" 버전에서 추가돼요.
💡 팁: "MINOR"는 가운데 숫자예요. 예를 들어
0.2.3에서 MINOR 버전은2예요.
FastAPI 버전 업그레이드하기
여러분의 앱에 테스트를 추가해야 해요.
FastAPI에서는 (Starlette 덕분에) 아주 쉽답니다. 문서를 확인해 보세요: Testing
테스트가 준비되면 FastAPI 버전을 더 최신 버전으로 업그레이드하고, 테스트를 실행해서 모든 코드가 올바르게 동작하는지 확인하면 돼요.
모든 게 잘 동작하거나 필요한 변경을 마친 뒤 모든 테스트가 통과하면, fastapi를 그 새로운 최신 버전으로 고정하면 돼요.
Starlette에 대해서
starlette의 버전은 고정하면 안 돼요.
FastAPI의 버전마다 특정한 최신 버전의 Starlette을 사용할 거예요.
그러니 그냥 FastAPI가 올바른 Starlette 버전을 쓰도록 놔두면 돼요.
Pydantic에 대해서
Pydantic은 FastAPI에 대한 테스트를 자체 테스트로 포함하고 있어서, (1.0.0 이상의) 새 Pydantic 버전은 항상 FastAPI와 호환돼요.
Pydantic은 1.0.0 이상의, 여러분에게 잘 맞는 아무 버전으로나 고정할 수 있어요.
예를 들어:
pydantic>=2.7.0,<3.0.0