FastAPI는 현대의 API 개발에 있어 가장 인기 있는 프레임워크 중 하나로, Python의 비동기 기능을 최대한 활용해 높은 성능을 자랑합니다. 이 글에서는 FastAPI의 설치 방법과 기본 프로젝트 구조에 대해 자세히 설명하겠습니다. 이 강좌를 통해 FastAPI를 잘 이해하고 실제 프로젝트에 적용할 수 있도록 도와드리겠습니다.
1. FastAPI란?
FastAPI는 Python 3.6 이상에서 사용할 수 있는 웹 프레임워크로, API를 쉽게 구축할 수 있도록 설계되었습니다. 다음과 같은 장점이 있습니다:
- 빠른 성능: FastAPI는 Starlette와 Pydantic을 기반으로 하여 높은 성능을 자랑합니다. 기본적으로 100% 비동기 방식으로 작동하며, 동시 요청 처리에서도 뛰어난 성능을 발휘합니다.
- 자동 문서화: FastAPI는 OpenAPI 표준에 따라 API 문서를 자동으로 생성합니다. Swagger UI와 ReDoc을 사용하여 직관적인 문서를 제공합니다.
- 타입 힌트 지원: Python의 타입 힌트를 지원하여 코드의 가독성과 유지보수성을 높입니다. 특히 IDE에서의 코드 완성 기능이 강력하게 작동합니다.
2. FastAPI 설치하기
FastAPI를 사용하기 위해 필요한 패키지들을 설치해 보겠습니다. 먼저 Python이 설치되어 있어야 합니다. Python의 최신 버전이 필요하며, 공식 웹사이트에서 다운로드하여 설치할 수 있습니다. 설치가 완료되었다면, FastAPI와 Uvicorn을 설치하는 방법을 살펴보겠습니다.
pip install fastapi uvicorn
위 명령어를 사용하여 FastAPI와 Uvicorn을 설치할 수 있습니다. Uvicorn은 FastAPI 애플리케이션을 실행할 때 사용할 ASGI 서버입니다. 설치가 완료되었다면, 설치가 제대로 되었는지 다음 명령어로 확인할 수 있습니다.
pip show fastapi uvicorn
3. 기본 프로젝트 구조 만들기
FastAPI 프로젝트를 시작하기 위해 기본 폴더 구조를 설정해 보겠습니다. 간단한 FastAPI 프로젝트는 다음과 같은 구조를 가질 수 있습니다:
my_fastapi_project/
├── app/
│ ├── main.py
│ ├── api/
│ │ └── routers.py
│ └── models/
│ └── user.py
└── requirements.txt
이제 각각의 파일에 대해 설명하겠습니다.
3.1. requirements.txt
이 파일은 프로젝트에서 사용할 패키지들의 목록입니다. 다음과 같이 작성할 수 있습니다:
fastapi
uvicorn
3.2. main.py
메인 애플리케이션 파일로, FastAPI 서버를 실행하고 기본 라우터를 설정하는 역할을 합니다. 아래와 같이 구성할 수 있습니다:
from fastapi import FastAPI
from app.api.routers import router as api_router
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, FastAPI!"}
app.include_router(api_router, prefix="/api")
3.3. routers.py
이 파일은 API 라우터를 정의하는 데 사용됩니다. 여러 엔드포인트를 그룹화하여 관리하기 용이하게 만들어주는 역할을 합니다. 아래는 간단한 사용자 정보를 위한 API 라우터 예시입니다:
from fastapi import APIRouter
router = APIRouter()
@router.get("/users")
async def get_users():
return [{"username": "user1"}, {"username": "user2"}]
3.4. user.py
모델 파일로, 데이터베이스와 상호작용하는 데이터 모델을 정의하는 데 사용됩니다. 예를 들어, 사용자 정보를 저장하기 위한 모델을 정의할 수 있습니다:
from pydantic import BaseModel
class User(BaseModel):
id: int
username: str
email: str
class Config:
orm_mode = True
4. FastAPI 애플리케이션 실행하기
이제 기본 구조가 완성되었으므로 FastAPI 애플리케이션을 실행해 보겠습니다. 다음 명령어를 사용하여 서버를 실행할 수 있습니다:
uvicorn app.main:app --reload
위 명령어를 실행하면 FastAPI 서버가 시작됩니다. 기본적으로 http://127.0.0.1:8000
에서 실행됩니다. 웹 브라우저를 열고 이 주소로 접속하면 {“message”: “Hello, FastAPI!”}라는 JSON 응답이 오랜 것입니다. 또한 http://127.0.0.1:8000/docs
에 접속하여 자동 생성된 Swagger 문서 페이지를 확인할 수 있습니다.
5. FastAPI의 문서화 기능
FastAPI의 가장 매력적인 기능 중 하나는 자동 문서화입니다. Swagger UI와 ReDoc 인터페이스를 통해 API에 대한 직관적인 정보를 제공합니다. 위에서 언급한 것처럼, Swagger UI
에 접속하면 API의 모든 엔드포인트와 요청/응답 형식이 표시됩니다. 이를 통해 개발자는 API를 쉽게 테스트하고 이해할 수 있습니다.
6. 결론
이번 글에서는 FastAPI의 설치와 기본 프로젝트 구조를 설정하는 방법에 대해 알아보았습니다. FastAPI는 비동기식 API 개발에 매우 적합한 프레임워크로, 설치가 간편하며 문서화 기능이 뛰어나 몇 분 내에 강력한 API 서버를 구축할 수 있습니다. 앞으로의 강좌에서는 데이터베이스 연결, 사용자 인증 및 권한 관리, 비즈니스 로직 구현 등을 다룰 예정입니다. FastAPI를 통해 더 나은 웹 애플리케이션을 개발해 보시기를 바랍니다.