티스토리 뷰
안녕하세요! 최근 새로운 프로젝트를 진행하게되면서 빠르고 모던한 웹 프레임워크인 FastAPI로 백엔드 개발을 진행하게 되면서 되어, 이를 학습하고 적용한 과정을 정리해보려고 합니다. 이번 포스팅에서는 Python의 FastAPI를 이용하여 백엔드를 개발하는 전 과정을 소개하겠습니다. 본격적인 개발에 앞서 간략하게 FastAPI의 주요 장점과 개발환경 구축 과정에 대해 살펴보고 가겠습니다.
1) FastAPI의 주요 장점
- 타입검사 및 데이터 검증
- FastAPI는 Pydantic을 사용하여 데이터 검증을 수행Python의 타입 힌트를 사용하여 입력 데이터와 출력 데이터를 검증합니다. 이를 통해 코드의 가독성을 높이고, 버그 발생 가능성을 줄일 수 있습니다.
from pydantic import BaseModel
class Item(BaseModel):
no: int
name : str
description: Union[str, None] = None
- 간단한 비동기 프로그래밍
- async와 await 키워드를 사용하여 비동기 작업을 쉽게 처리할 수 있습니다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
- 자동 문서화
- FastAPI는 API 문서를 자동으로 생성합니다. Swagger UI와 ReDoc을 통해 API 문서를 시각적으로 확인하고 테스트할 수 있으며, 이를 통해 개발자는 API 문서를 작성하는 시간을 절약할 수 있습니다.
- Swagger UI: http://127.0.0.1:8000/docs
- ReDoc: http://127.0.0.1:8000/redoc
2) FastAPI의 환경설정 부터 API 개발까지
1. 환경 설정
- Python 설치
- 먼저, Python이 설치되어 있어야 합니다. Python이 설치되어 있지 않다면, Python 공식 웹사이트에서 다운로드하여 설치해주세요.
- 파이썬 공식 사이트 : https://www.python.org/downloads/
- 파이썬 설치 과정 : https://danmilife.tistory.com/26
2. 가상환경 설정
- VSCode에서 Python 설정 및 가상환경 설정
- Python 확장 프로그램 설치
- VSCode에서 Python을 사용하기 위해 Python 확장 프로그램을 설치합니다.
- 좌측 사이드바에서 Extensions 아이콘(또는 Ctrl+Shift+X)을 클릭
- 검색창에 "Python"을 입력하고, "Python" 확장 프로그램을 설치
- 터미널 열어 가상환경 설정
- 터미널 > 새 터미널을 클릭
- 프로젝트 폴더 내에서 가상환경을 생성
- 아래 명령어는 "venv"라는 이름의 가상환경을 생성합니다. 다른 이름을 원할 경우 "venv" 대신 원하는 이름을 입력하면 됩니다.
python -m venv venv
- Python 확장 프로그램 설치
- 가상환경 활성화
- 터미널에서 활성화
- venv/bin/activate
venv/bin/activate
- venv/bin/activate
- Visual Studio Code에서 활성화
- Ctrl + Shift + p 입력 > Python: Select Interpreter 선택 > 가상환경 선택
- Ctrl + Shift + p 입력 > Python: Select Interpreter 선택 > 가상환경 선택
- 터미널에서 활성화
3) FastAPI 및 필요한 패키지 설치
- 가상 환경이 활성화된 상태에서 FastAPI와 ASGI 서버인 Uvicorn을 설치합니다.
- pip : 파이썬 라이브러리를 설치하고 관리
- pip install fastapi : pip을 이용해 FastAPI를 설치하라는 명령어
pip install fastapi
- pip install uvicorn : 유비콘(Uvicorn)은 비동기 호출을 지원하는 파이썬용 웹 서버
pip install uvicorn
4) FastAPI 기본 프로젝트 구조 설정
- 다음과 같은 기본 구조로 시작할 수 있습니다.
fastapi_project/
│
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI 애플리케이션 진입점
│ ├── models.py # 데이터베이스 모델
│ ├── schemas.py # Pydantic 스키마
│ └── routes.py # API 엔드포인트
│
└── requirements.txt # 패키지 의존성 관리
5) FastAPI 애플리케이션 초기 설정
- main.py 파일을 생성하고 다음과 같이 기본 FastAPI 애플리케이션을 설정합니다.
# app/main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
6) FastAPI 애플리케이션 실행
- Uvicorn을 사용하여 애플리케이션을 실행합니다. 다음 명령어를 실행합니다.
- --reload : 코드 변경 시 자동으로 서버를 재시작하게 해줍니다.
- 브라우저를 열고 http://127.0.0.1:8000으로 이동하면 {"Hello": "World"}라는 JSON 응답을 확인할 수 있습니다.
uvicorn app.main:app --reload
7) API 문서 확인
- FastAPI는 OpenAPI를 기반으로 자동으로 문서화된 API를 제공합니다.
- http://127.0.0.1:8000/docs에서 Swagger UI를 통해 API 문서를 확인할 수 있습니다.
이제 FastAPI를 이용한 백엔드 개발을 위한 기본 환경이 설정되었습니다. 이후 단계에서는 API 설계 및 데이터베이스 연동 등의 작업을 진행할 수 있습니다.
지금까지 Spring을 사용해 백엔드 개발을 해왔는데, 이번 프로젝트에서 FastAPI로 전환하면서 많은 변화와 긍정적인 경험을 했습니다. 몇 가지 느낀 점을 공유하자면 FastAPI는 코드가 간결하고 직관적이어서 API를 설계하고 구현하는 데 드는 시간이 크게 줄어들었고, Swagger UI가 자동으로 생성되는 점이 협업하는데 있어 훨씬 수월하게 느껴졌습니다.
확실히 경량화된 프레임워크다 보니 불필요한 설정이나 복잡한 구조가 없어서 크게 어려움 없이 프로젝트를 진행할 수 있었습니다.
이러한 점들 덕분에 FastAPI는 현대적인 웹 API 개발에 적합한 선택이라고 느꼈습니다. 앞으로의 시리즈에서는 FastAPI를 통해 더욱 발전된 백엔드 시스템을 구축할 수 있도록 다양한 주제를 다뤄보겠습니다!
'Python' 카테고리의 다른 글
[Python/Windows 11] 윈도우에서 파이썬 설치, 환경변수 설정 (0) | 2022.05.15 |
---|