Python
[Python] FastAPI 프레임워크로 api서버 만들기
teamnova
2025. 5. 1. 21:42
728x90
1. FastAPI란?
FastAPI는 Python으로 작성된 최신 웹 프레임워크입니다. 주로 API 서버를 만들 때 사용합니다. 이름에서 알 수 있듯이 빠르고, 사용하기 쉽습니다.
특히 자동으로 문서를 생성해주기 때문에, 개발과 테스트가 편리합니다.
https://fastapi.tiangolo.com/ko/
FastAPI
FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi.tiangolo.com
2. FastAPI의 특징
- 빠른 속도: 비동기(Async) 기능을 기본으로 지원해 많은 요청을 빠르게 처리할 수 있습니다.
- 자동 문서 생성: API를 만들면 문서가 자동으로 생성됩니다.
- 간단한 코드: 코드가 짧고, 읽기 쉽습니다.
- 타입 힌트 지원: Python의 타입 힌트를 활용해 코드가 더 명확해집니다.
장점
- 배우기 쉽고, 문서가 잘 되어 있습니다.
- 자동 문서 기능이 있어서 API 테스트가 편리합니다.
- 비동기 처리를 쉽게 할 수 있습니다.
단점
- 대규모 웹사이트 구축에는 적합하지 않을 수 있습니다.
- 아직 오래된 프레임워크에 비해 생태계가 작습니다.
3. FastAPI로 API 서버 만들기 (Ubuntu 22.04 기준)
3.1 준비사항
- Ubuntu 22.04가 설치된 서버 또는 PC
- Python 3.8 이상
3.2 FastAPI와 Uvicorn 설치
터미널을 열고 아래 명령어를 입력합니다.
sudo apt update
sudo apt install python3-pip -y
pip3 install fastapi uvicorn
- fastapi: FastAPI 프레임워크
- uvicorn: FastAPI 앱을 실행하는 서버
3.3 첫 번째 FastAPI 코드 작성
1) 프로젝트 폴더를 만듭니다.
mkdir fastapi-example
cd fastapi-example
2) 아래와 같이 main.py 파일을 만듭니다.
# main.py
# FastAPI 모듈을 불러옵니다.
from fastapi import FastAPI
# FastAPI 앱을 생성합니다.
app = FastAPI()
# 루트 경로('/')에 GET 요청이 오면 아래 함수가 실행됩니다.
@app.get("/")
def read_root():
# JSON 형태로 데이터를 반환합니다.
return {"message": "Hello, FastAPI!"}
3.4 서버 실행하기
uvicorn main:app --reload --host 0.0.0.0 --port 8000
- main:app : main.py 파일의 app 객체를 사용합니다.
- --reload : 코드가 바뀌면 자동으로 서버를 재시작합니다.
- --host 0.0.0.0 : 외부에서도 접속할 수 있게 합니다.
- --port 8000 : 8000번 포트에서 실행합니다.
3.5 API 동작 확인하기
웹 브라우저에서 아래 주소로 접속해봅니다.
- 서버에서 직접 실행 중이라면:
http://localhost:8000/ 또는 http://127.0.0.1:8000/ - 다른 컴퓨터에서 서버에 접속하려면:
http://서버의_IP주소:8000/
(예: http://192.168.0.10:8000/)
아래와 같은 결과가 나오면 정상입니다.
4. 자동 생성 API 문서 확인하기
FastAPI는 두 가지 종류의 API 문서를 자동으로 만들어줍니다.
4.1 Swagger UI
아래 주소로 접속하면, API를 테스트할 수 있는 화면이 나옵니다.
- http://서버주소:8000/docs
4.2. ReDoc
아래 주소로 접속하면, 좀 더 깔끔한 문서화 화면이 나옵니다.