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

더 알아보기 (Learn more)