FastAPI 공부하면서 기존 파이썬 웹 프레임워크(ex. D.jango, Flask)와의 차이점을 중심으로 정리
가장 대표적인 파이썬 웹 프레임워크로 D.jango, Flask가 있으며, 주로 웹 서비스 개발에 사용한다. 반면, FastAPI는 API를 만드는 데 집중된 프레임워크이다.
FastAPI로 작성한 API는 React, Vue.js 등 Front-end 웹 프레임워크에서도 사용할 수 있고, Android, iOS 앱에서도 사용할 수 있다.
만약 D.jango나 Flask로 웹 서비스를 만들었다면, 이에 대응하는 Android나 iOS 앱을 위한 API 개발을 별도로 해야 하지만, FastAPI로 만든 API는 여러 클라이언트에서 변경없이 사용할 수 있다.
API 개발은 보통 입출력 명세서를 정하고, 기능을 구현한 후에 테스트 하는 순서로 진행된다. FastAPI는 입출력을 정의하고 입출력 값 검증을 빠르게 실행할 수 있다. (Pydantic)
또한, 작성한 API는 자동으로 생성되는 API 웹 문서를 통해 쉽게 테스트 할 수 있다. (Swagger)
FastAPI로 작성한 API는 API 사용법에 관한 문서를 따로 작성할 필요가 없다. API 문서가 자동으로 생성되기 때문이다. API 문서는 웹 페이지 형태로 제공되며 API 동작을 테스트 할 수 있다.
FastAPI는 Django처럼 자체 ORM(Object Relational Mapping)을 제공하지 않는다. 하지만, SQLAlchemy를 사용하여 ORM을 사용할 수 있다.
입출력 정의, 입출력 값을 검증하는 패턴이 정형화되어 있다. 여기에, 정의된 입출력을 통해 API 문서가 자동으로 생상된다.