FastAPI란?
FastAPI는 API를 만들기 위한 파이썬 웹 프레임워크이다. FastAPI는 이름에 걸맞게 빠른 속도를 자랑한다.
API(Application Programing Interface)는 서비스의 요청과 응답에 대한 규칙을 의미하지만 보통 API라고 하면 이러한 요청과 응답을 처리하는 서비스(기능)를 의미한다.
기존 프레임워크와의 차이점
파이썬 웹 프레임워크 중 가장 유명한 장고와 플라스크는 주로 웹 서비스를 만들때 사용한다. 하지만 FastAPI는 API를 만드는데 보다 집중한 프레임워크이다. FastAPI로 작성한 API는 리액트나 Vue.js, Svelte와 같은 Frontend 웹 프레임워크에서 사용할 수 있고 안드로이드나 아이폰 앱에서도 사용할 수 있다. 만약 장고나 플라스크로 웹 서비스를 만들었다면 이에 대응하는 안드로이드나 아이폰 앱을 위한 API 개발을 따로 해야 하지만 FastAPI는 한번 만든 API를 여러 클라이언트에서 변경없이 사용할 수 있다.
장점
1. 속도가 빠르다
FastAPI는 파이썬 웹 프레임워크 중 가장 빠르다고 알려져있다. NodeJS 및 Go와 대등할 정도로 높은 성능을 자랑한다. 이것이 가능한 이유는 FastAPI가 내부적으로 Starlette이라는 비동기 프레임 워크를 사용하기 때문이다.
2. 빠르게 작성할 수 있다
API 개발은 보통 입출력 스펙을 정하고 기능을 구현한 후 테스트하는 순서로 진행한다. FastAPI는 입출력을 정의하고 입출력 값의 검증을 빠르고 안전하게 할 수 있다. (Pydantic이 이것을 가능하게 한다.) 그리고 작성한 API는 자동으로 생성되는 API 문서(웹 문서)를 통해 손쉽게 테스트 할 수 있다. (Swagger가 이것을 가능하게 한다.)
3. 테스트 가능한 API 문서
FastAPI로 작성한 API는 API 사용법에 관한 문서를 따로 작성할 필요가 없다. API 문서가 자동으로 생성된다. API 문서는 웹 페이지 형태로 제공되며 API 동작을 테스트할 수 있다.
4. 데이터베이스
FastAPI는 Django처럼 자체 ORM(Object Relational Mapping)을 제공하지는 않는다. 하지만 SQLAlchemy를 사용하여 ORM을 사용할 수 있다. (SQLAlchemy는 한번 익혀두면 두고두고 써먹을 수 있는 귀한 라이브러리이다.)
해당 포스팅은 아래의 출처를 바탕으로 정리했습니다.
'Python > FastAPI' 카테고리의 다른 글
Svelte 개발 환경 준비 (0) | 2024.03.25 |
---|---|
파이참 설치 및 사용 (0) | 2024.03.25 |
FastAPI 프로젝트 생성하기 (0) | 2024.03.25 |
FastAPI 개발 환경 준비 (0) | 2024.03.25 |
댓글