Python을 기반으로 하는 웹 프레임워크 중 최근(이라고 하기도 좀 뭐하지만)에 각광받고 있는 FastAPI를 한번 배워보려고 한다. 본격적으로 나만의 '무언가'를 만들어 보려고 하는데, 가장 일반적이고 내가 원하는 바를 표현해낼 수 있는 것이 웹이라고 생각되었다. html과 css 등의 프론트엔드는 그나마 찍먹 정도는 해봤기 때문에 백엔드 포지션이라고 할 수 있는 웹 프레임워크부터 배워보기로 했다.
FastAPI의 특징은?
이름에서부터 알 수 있듯이 FastAPI는 API를 만드는데 특화된 웹 프레임워크이며, 빠른 속도를 자랑한다. 이는 Python의 async와 await을 이용해 비동기 프로그래밍을 지원해 동시성을 높일 수 있었기 때문이다. Python 3.8 기준의 API를 빌드를 목적으로 하고 있으며, 간결한 코드와 함께 비교적 적은 버그 발생률을 나타낸다.
또한 작성한 API 코드에 대해 문서 및 테스트 도구를 제공하는데, 자동으로 API 엔드포인트와 파라미터에 대한 샘플을 생성해준다고 한다. 이전에는 Swagger라는 이름을 사용했는데, 현재는 OpenAPI로 이름이 바뀌었다고 한다.
FastAPI 설치
pip install fastapi
pip install "uvicorn[standard]"
pip 명령어를 통해 설치할 수 있다. 아래에 있는 uvicorn은 ASGI(Asynchronous Server Gateway Interface, 비동기 처리와 동시 처리를 지원하는 파이썬 웹 서버와 웹 프레임워크 간 인터페이스)기능이 있는 웹 서버로, 함께 설치해준다.
"Hello, World" 노출시켜보기
다음과 같은 코드를 가진 main.py 파일을 만든다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"Hello":"World!"}
그 다음 uvicorn 서버를 통해 main.py 파일을 실행시켜준다.
uvicorn main:app --reload
이후 인터넷 브라우저를 통해 '127.0.0.1:8000' 주소를 치고 검색하면 아래와 같은 결과가 나타난다. 간단히 FastAPI 테스트까지 해보았다.
'Minding's Programming > FastAPI' 카테고리의 다른 글
[FastAPI/AWS/Uvicorn] AWS에 프로젝트 배포하기 (0) | 2024.06.20 |
---|---|
[FastAPI] 파이썬 멀티 프로세싱 (0) | 2024.04.03 |
[FastAPI] 파이썬 멀티 스레딩 사용해보기 (0) | 2024.04.01 |
[FastAPI] 동시성과 병렬성 개념 정리 (0) | 2024.03.31 |
[FastAPI] 동기와 비동기, 코루틴 개념 정리 (0) | 2024.03.03 |