Skip to content

Latest commit

 

History

History
113 lines (87 loc) · 2.83 KB

File metadata and controls

113 lines (87 loc) · 2.83 KB

CatCheck — Backend

FastAPI 기반 REST API 서버입니다. BCS 분석, 인증, 반려동물/리포트 관리 기능을 제공합니다.

기술 스택

분류 기술
언어 Python 3.12
웹 프레임워크 FastAPI
ORM SQLAlchemy 2.0 (async)
DB 마이그레이션 Alembic
데이터베이스 PostgreSQL 16
캐시 / 세션 Redis 7
인증 JWT (python-jose), bcrypt
AI 분석 Google Gemini 2.5 Flash
이미지 생성 OpenAI DALL-E
이미지 스토리지 Cloudinary
패키지 매니저 uv

프로젝트 구조

server/
├── app/
│   ├── core/           # 예외 처리
│   ├── dependencies/   # FastAPI 의존성 (인증 등)
│   ├── models/         # SQLAlchemy 모델 (user, pet, report)
│   ├── routers/        # API 라우터 (auth, pets, reports)
│   ├── schemas/        # Pydantic 스키마
│   ├── services/       # 비즈니스 로직 (Gemini, Cloudinary, Redis 등)
│   ├── config.py       # 환경변수 설정
│   ├── database.py     # DB 연결
│   └── main.py         # 앱 진입점
├── alembic/            # DB 마이그레이션
├── assets/             # BCS 기준 이미지
├── pyproject.toml
└── Dockerfile

API 엔드포인트

Method Path 설명
POST /api/auth/register 회원가입
POST /api/auth/login 로그인
POST /api/auth/logout 로그아웃
GET /api/auth/me 내 정보 조회
PATCH /api/auth/me 내 정보 수정
GET /api/pets 반려동물 목록
POST /api/pets 반려동물 등록
PUT /api/pets/{id} 반려동물 수정
DELETE /api/pets/{id} 반려동물 삭제
GET /api/reports 리포트 목록
GET /api/reports/{id} 리포트 상세
POST /api/reports/validate 사진 검증 (1단계)
POST /api/reports/analyze BCS 분석 (2단계)

설치 및 실행

사전 준비

  • Python 3.12+
  • uv 패키지 매니저
  • Docker (PostgreSQL, Redis 실행용)

1. 인프라 실행

프로젝트 루트에서:

docker compose -f docker-compose.dev.yml up -d

2. 의존성 설치

cd server
uv sync

3. 환경변수 설정

server/.env 파일 생성:

DATABASE_URL=postgresql+asyncpg://catcheck:your_password@localhost:5432/catcheck
JWT_SECRET=your_jwt_secret

CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=

GEMINI_API_KEY=

REDIS_URL=redis://localhost:6379

4. DB 마이그레이션

cd server
uv run alembic upgrade head

5. 서버 실행

uv run uvicorn app.main:app --reload

서버가 http://localhost:8000 에서 실행됩니다. API 문서: http://localhost:8000/docs