FastAPI 개발자 tiangolo는 FastAPI를 어떻게 사용할까 궁금해서 찾아본 프로젝트
https://github.com/tiangolo/full-stack-fastapi-postgresql
FastAPI(백엔드)의 기본적인 프로젝트 구조는 아래와 같음
```
app
├── alembic # 데이터베이스 마이그레이션을 관리하는 Alembic 설정 파일 및 스크립트가 저장된 디렉토리
├── api # FastAPI 애플리케이션의 API 엔드포인트 및 라우터가 정의된 디렉토리
├── core # 애플리케이션의 핵심 기능 및 설정이 정의된 모듈이 위치하는 디렉토리
├── schemas # Pydantic 스키마 정의가 포함된 디렉토리로, 데이터의 유효성 검사와 API 요청 및 응답의 구조를 정의
├── email-templates # 이메일 템플릿 파일이 저장된 디렉토리
├── tests # 테스트 파일이 위치한 디렉토리
├── __init__.py # Python에서 패키지로 인식되도록 하는 빈 __init__.py 파일
├── backend_pre_start.py # FastAPI 애플리케이션 시작 전에 실행할 코드가 정의된 파일
├── celeryworker_pre_start.py # Celery worker 시작 전에 실행할 코드가 정의된 파일
├── initial_data.py # 애플리케이션 초기 데이터를 설정하는 스크립트 파일
├── tests_pre_start.py # 테스트 시작 전에 실행할 코드가 정의된 파일
├── main.py # FastAPI 애플리케이션의 진입점이 되는 파일로, API 라우터를 구성하고 애플리케이션을 실행
├── models.py # SQLAlchemy 모델이 정의된 파일
├── crud.py # 데이터베이스 CRUD(Create, Read, Update, Delete) 연산을 수행하는 함수가 정의된 파일
├── utils.py # 애플리케이션에서 사용되는 유틸리티 함수가 정의된 파일
└── worker.py # Celery worker의 작업을 정의하는 파일
pyproject.toml # Poetry 프로젝트의 설정 파일로, 의존성 및 프로젝트 메타데이터를 정의
.env # 환경 변수 설정이 담긴 파일
.dockerignore # Docker 이미지 빌드 시 제외할 파일 및 디렉토리를 지정하는 파일
.gitignore # Git으로 추적하지 않을 파일 및 디렉토리를 지정하는 파일
alembic.ini # Alembic의 설정 파일로, 데이터베이스 마이그레이션 설정을 정의 #
backend.dockerfile # FastAPI 애플리케이션을 위한 Docker 이미지를 빌드하는 데 사용되는 Docker 파일
celeryworker.dockerfile # Celery worker를 위한 Docker 이미지를 빌드하는 데 사용되는 Docker 파일
prestart.sh # FastAPI 애플리케이션 시작 전에 실행할 스크립트 파일
tests-start.sh # 테스트 시작 시 실행할 스크립트 파일
worker-start.sh # Celery worker 시작 시 실행할 스크립트 파일
```
참고 : FastAPI 개발자가 직접 개발한 FastAPI backend 시리즈
FastAPI 개발자가 직접 개발한 FastAPI backend 프로젝트 구조
FastAPI 개발자가 직접 개발한 FastAPI backend alembic
FastAPI 개발자가 직접 개발한 FastAPI backend DB 초기화 방법
FastAPI 개발자가 직접 개발한 FastAPI backend pyproject.toml
FastAPI 개발자가 직접 개발한 FastAPI backend 설정파일 config.py
FastAPI 개발자가 직접 개발한 FastAPI backend 데이터모델 models.py
'Python > Web' 카테고리의 다른 글
Flask-Migrate 소개 및 기초 사용법 (0) | 2024.03.05 |
---|---|
FastAPI 개발자가 직접 개발한 FastAPI backend pyproject.toml (0) | 2024.03.03 |
WSGI와 ASGI 단순 비교 (0) | 2024.02.28 |
FastAPI 비동기 처리 (1) | 2024.02.26 |
FastAPI async 비동기 동시 처리 (1) | 2024.02.26 |