Choorai

60분 완주 챌린지

Step 1/6

0%
예상 소요시간: 15분
FastAPI

백엔드: FastAPI

Python FastAPI로 API 서버를 만듭니다. 데이터베이스 없이 메모리에 저장하는 간단한 방식으로 시작해요.

TL;DR (3줄 요약)

  • Python 가상환경 생성 후 FastAPI 설치
  • 프로젝트 CRUD API 엔드포인트 생성
  • /docs에서 API 테스트

3단계 시작 전에 알아둘 용어

  • 엔드포인트(Endpoint): API가 요청을 받는 URL 주소입니다.
  • 요청(Request): 프론트엔드가 서버에 보내는 데이터/행동입니다.
  • 응답(Response): 서버가 프론트엔드에 돌려주는 결과 데이터입니다.
  • CRUD: 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)의 기본 동작입니다.

1환경 설정

프론트엔드 폴더(my-admin) 옆에 백엔드 폴더를 만듭니다.

터미널
# 상위 폴더로 이동 (my-admin 폴더가 있는 곳)
cd ..

# 백엔드 폴더 생성
mkdir my-admin-api
cd my-admin-api

# Python 가상환경 생성 (권장)
python3 -m venv venv

# 가상환경 활성화
# Mac/Linux:
source venv/bin/activate
# Windows:
# venv\Scripts\activate

Python이 없다면?

python.org에서 Python 3.10 이상을 설치하세요. Mac 사용자는 brew install python도 가능합니다.

2FastAPI 설치

터미널
# FastAPI와 서버 설치
pip install fastapi uvicorn

# 의존성 파일 생성
pip freeze > requirements.txt

requirements.txt 파일이 생성됩니다. 나중에 배포할 때 이 파일을 사용합니다.

중간 용어 팁: 가상환경 / 의존성

  • 가상환경(Virtual Environment): 프로젝트별로 Python 패키지를 분리해 충돌을 방지하는 환경입니다.
  • requirements.txt: 현재 프로젝트에 필요한 Python 패키지 목록입니다.
  • 런타임(Runtime): 코드가 실제 실행되는 환경입니다.
  • 심화 학습: 도구 설치, 환경변수/런타임

3첫 API 만들기

main.py 파일을 만들고 아래 코드를 붙여넣으세요:

main.py
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI(title="My Admin API")

# CORS 설정 - 프론트엔드와 통신하려면 필수!
app.add_middleware(
    CORSMiddleware,
    allow_origins=["http://localhost:5173"],  # Vite 개발 서버
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

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

@app.get("/")
def root():
    return {"message": "Welcome to My Admin API"}

서버를 실행해봅시다:

터미널
uvicorn main:app --reload --port 8000

브라우저에서 http://localhost:8000/docs를 열면 Swagger UI가 나타납니다!

중간 용어 팁: CORS / Swagger

  • CORS: 브라우저가 다른 출처(포트/도메인) 요청을 허용할지 검사하는 보안 규칙입니다.
  • Swagger UI: API를 브라우저에서 바로 실행/검증할 수 있는 문서 UI입니다.
  • 심화 학습: CORS 트러블슈팅
성공!

Swagger 문서가 보이면 API 서버가 정상 작동하는 것입니다.

4AI로 CRUD API 만들기

프로젝트 CRUD API를 AI에게 만들어달라고 요청합니다.

AI 프롬프트

복사해서 사용하세요

"FastAPI로 프로젝트 CRUD API를 만들어줘. 요구사항: 1. 데이터베이스 없이 메모리(딕셔너리)에 저장 2. Pydantic 모델로 타입 검증 API 엔드포인트: - GET /api/v1/projects - 프로젝트 목록 (페이지네이션) - POST /api/v1/projects - 프로젝트 생성 - GET /api/v1/projects/{id} - 프로젝트 상세 - PUT /api/v1/projects/{id} - 프로젝트 수정 - DELETE /api/v1/projects/{id} - 프로젝트 삭제 프로젝트 필드: - id: UUID (자동 생성) - name: 문자열 (필수) - description: 문자열 (선택) - created_at: datetime (자동) - updated_at: datetime (자동) 파일 구조: - main.py (기존 파일에 라우터 추가) - schemas.py (Pydantic 모델) - storage.py (인메모리 저장소)"

위 프롬프트를 AI에게 전달하세요.

5결과 확인

AI가 만든 코드를 적용하고 서버를 재시작하면 /docs에서 모든 API를 테스트할 수 있습니다.

localhost:8000/docs
GET /api/v1/projects 프로젝트 목록
POST /api/v1/projects 프로젝트 생성
GET /api/v1/projects/{id} 프로젝트 상세
PUT /api/v1/projects/{id} 프로젝트 수정
DELETE /api/v1/projects/{id} 프로젝트 삭제

Swagger에서 테스트하기

  1. POST /api/v1/projects를 클릭
  2. "Try it out" 버튼 클릭
  3. name과 description 입력
  4. "Execute" 버튼 클릭
  5. 201 응답과 생성된 프로젝트 확인!

완성된 예제 코드는 GitHub 저장소 에서 확인할 수 있습니다.

FastAPI 백엔드 완료 체크리스트

0/4 완료

마지막 업데이트: 2026년 2월 22일 · 버전: v0.0.1

피드백 보내기

입력한 내용으로 새 이슈 페이지를 엽니다.

GitHub 이슈로 보내기