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
아래 주소로 접속하면, 좀 더 깔끔한 문서화 화면이 나옵니다.