티스토리 뷰

반응형

 

 

안녕하세요! 최근 새로운 프로젝트를 진행하게되면서 빠르고 모던한 웹 프레임워크인 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/Windows 11] 윈도우에서 파이썬 설치, 환경변수 설정

1. 파이썬 공식 홈페이지 접속 파이썬 공식 홈페이지 : https://www.python.org/ 2. 파이썬 설치 파일 다운로드 Download > Windows > "View the full list of download" 또는 : https://www.python.org/downloads/ Download Python The off

danmilife.tistory.com

 

2. 가상환경 설정

  • VSCode에서 Python 설정 및 가상환경 설정
    • Python 확장 프로그램 설치
      • VSCode에서 Python을 사용하기 위해 Python 확장 프로그램을 설치합니다.
      • 좌측 사이드바에서 Extensions 아이콘(또는 Ctrl+Shift+X)을 클릭
      • 검색창에 "Python"을 입력하고, "Python" 확장 프로그램을 설치

         
    • 터미널 열어 가상환경 설정
          • 터미널 > 새 터미널을 클릭
          • 프로젝트 폴더 내에서 가상환경을 생성  
          • 아래 명령어는 "venv"라는 이름의 가상환경을 생성합니다. 다른 이름을 원할 경우 "venv" 대신 원하는 이름을 입력하면 됩니다.
      python -m venv venv

 

  • 가상환경 활성화
    • 터미널에서 활성화
      • venv/bin/activate
         
        venv/bin/activate




    • Visual Studio Code에서 활성화
      • 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를 통해 더욱 발전된 백엔드 시스템을 구축할 수 있도록 다양한 주제를 다뤄보겠습니다!

반응형
댓글
반응형
공지사항