1 minute read




FastAPI란?

FastAPI란?

[ FastAPI ]

FastAPIPython으로 만드는 웹 API 프레임워크이다.
쉽게 말하자면, 프론트엔드나 다른 서비스 데이터를 주고받는 서버를 빠르고 깔끔하게 만들 수 있게 도와주는 도구이다.



[ FastAPI를 사용하는 이유 ]
FastAPI를 사용하는 이유는 크게 4가지로 정리할 수 있다

1) 이름처럼 정말 빠르다

내부적으로 비동기(async)처리를 기반으로 동작하기 때문에, 트래픽이 많아져도 성능이 좋다

2) 코드가 직관적이다
3) 자동 API 문서 생성
3) 타입 힌트로 안정성을 높힐 수 있다 - 잘못된 요청이 들어오면 자동으로 막아준다




VScode에서 FastAPI 시작하기

FastAPI 폴더 구성하기

우선 FastAPI는 일반적으로 백엔드와 프론트엔드를 구분한다

backend/
	├─ app/
	   ├─ __init__.py
	   └─ main.py
	├─ requirements.txt
	└─ ...



파이선 가상환경 설정하기

1) 백엔드 폴더로 이동하기(필수X): cd backend
2) 가상환경 만들기: python3.11 -m venv .venv
3) 가상환경 활성화하기(맥os/리눅스): source .venv/bin/activate
4) vscode 인터프리터 설정: which python 의 값을 cmd + shift + p 후 인터프리터로 선택

만약 root에서 가상환경을 설정하지 않으면 vscode가 .venv를 프로젝트 인터프리터로 인식하지 못해서, 따로 추가해준 후 선택한다

5) requirements.txt 파일 생성 후 내용 입력: pip freeze > requirements.txt
4) 의존성 설치: pip install -r requirements.txt



FastAPI 초기 셋팅하기

1) 폴더 구조 만들기
보통 프론트앤드와 백앤드가 구분된 프로젝트는 아래와 같은 폴더구조를 갖는다

project-root/
├─ backend/
  ├─ app/
    ├─ main.py        # FastAPI 엔트리포인트
    ├─ api/           # 라우터들
    ├─ models/        # DB 모델
    ├─ schemas/       # Pydantic 스키마
    └─ services/      # 비즈니스 로직
  └─ requirements.txt

├─ frontend/
  ├─ src/
  ├─ public/
  └─ package.json

└─ README.md

__init__.py는 파이썬 패키지용 파일


2) FastAPI 앱 초기화 (app/main.py):

from fastapi import FastAPI

app = FastAPI(
    title="Whalley Commu API",
    version="0.1.0"
)

@app.get("/health")
def health_check():
    return {"status": "ok"}

• 이름은 app (Uvicorn이 찾는 객체)
/health는 인증 없이 접근 가능
• 나중에 로드밸런서/헬스체크에도 그대로 씀


3) 작동 테스트 (app/main.py):

cd backend
source .venv/bin/activate
uvicorn app.main:app --reload

http://127.0.0.1:8000/health 접속되면 성공!

Tags:

Categories:

Updated: