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\activatePython이 없다면?
python.org에서
Python 3.10 이상을 설치하세요. Mac 사용자는 brew install python도 가능합니다.
2 FastAPI 설치
# FastAPI와 서버 설치
pip install fastapi uvicorn
# 의존성 파일 생성
pip freeze > requirements.txt requirements.txt 파일이 생성됩니다. 나중에 배포할 때 이 파일을 사용합니다.
3 첫 API 만들기
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가 나타납니다!
Swagger 문서가 보이면 API 서버가 정상 작동하는 것입니다.
4 AI로 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를 테스트할 수 있습니다.
/api/v1/projects 프로젝트 목록 /api/v1/projects 프로젝트 생성 /api/v1/projects/{id} 프로젝트 상세 /api/v1/projects/{id} 프로젝트 수정 /api/v1/projects/{id} 프로젝트 삭제 Swagger에서 테스트하기
- POST /api/v1/projects를 클릭
- "Try it out" 버튼 클릭
- name과 description 입력
- "Execute" 버튼 클릭
- 201 응답과 생성된 프로젝트 확인!
완성된 예제 코드는 GitHub 저장소 에서 확인할 수 있습니다.