개발하는 자몽

FastAPI 개발 환경 설정과 애플리케이션 시작하기 본문

Python/FastAPI

FastAPI 개발 환경 설정과 애플리케이션 시작하기

jaamong 2025. 2. 8. 09:27

나는 보통 백엔드 개발 시 주로 스프링 부트를 사용하지만, 파이썬을 사용하는 AI 엔지니어와 협업할 때 호환성이 좋지 않았다. 그래서 AI 엔지니어와 협업할 때만 사용할, 스프링 부트를 대체할 파이썬 기반 백엔드 프레임워크 사용을 계속 고민해 왔다.

인증이나 주된 기능은 스프링 부트로 처리하되 AI 프로그램에서 넘어오는 데이터를 처리하고 API로 전달하는 용도로 쓰고자 했다. 따라서 비교적 무거운 Django를 제외하고 Flask와 FastAPI 중에서 고민했다. 

 

이전에 사용해 본 Flask는 Java로 백엔드 개발하는 것과 비슷한 부분이 있어서 끌렸는데, FastAPI는 Flask와 동일하게 API나 마이크로서비스 개발 등에 적합하며 API 문서 자동화를 지원한다고 한다! API 문서 자동화 지원은 사용할 이유로 충분했다.

 

환경 설정

⚠️파이썬이 먼저 설치되어 있어야 한다. 없다면 여기로 가서 최신 버전을 설치하고 시스템 환경 변수에 추가하자.

 

파이썬 설치가 완료되었다면 이제 FastAPI와 Uvicorn을 설치해야 한다.

💡 Uvicorn은 FastAPI를 실행하는 가벼운 ASGI 서버이다.

 

FastAPI와 Uvicorn을 설치하기 위해 아래 명령어를 터미널에 입력하자.

pip install fastapi uvicorn

 

설치가 완료되면 FastAPI 애플리케이션을 빌드할 수 있다. → 환경 설정 끝!

 

간단한 애플리케이션 만들기

우선 FastAPI를 `import` 해야 한다. 이는 FastAPI 인스턴스 생성에 필요하다.

from fastapi import FastAPI  # fastapi 모듈에서 FastAPI 클래스 import

app = FastAPI()  # FastAPI 클래스의 인스턴스 생성

`app`은 서버로 들어오는 모든 요청을 처리하는 메인 애플리케이션이 된다.

 

이제 Path operation(API)을 정의한다. 

  • "/" 경로로 요청이 들어온다.
  • 처리하는 함수명은 `read_root`이다.
  • `"hello"`와 `"world"`를 담은 딕셔너리 데이터를 반환하다.
from fastapi import FastAPI 

app = FastAPI()  


@app.get("/")
def read_root():
    return {"hello", "world"}

 

이제 Uvicorn을 사용하여 서버를 실행하자.

uvicorn main:app --reload
  • `uvicorn main:app` :  메인 앱이 Uvicorn에게 `main.py`안에 존재하는 `app` 인스턴스를 찾으라고 한다.
  • `--reload` :  코드에 변경사항에 생기면 서버가 자동으로 재시작된다.

터미널에서 명령어 입력
서버 실행 후 localhost:8080/ 접근 결과

 

문서 자동화

위에서 언급했던 것과 같이 FastAPI는 문서 자동화 기능을 지원한다.

`/docs`으로 접근하면 Swagger 형태로, `/redoc`으로 접근하면 Redoc 형태로 API 문서를 제공한다.

 

/docs로 접근 시 Swagger 형태

 

/redoc으로 접근 시 Redoc 형태

 

 

 

 

Comments