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
| 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 실행용)
프로젝트 루트에서:
docker compose -f docker-compose.dev.yml up -dcd server
uv syncserver/.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:6379cd server
uv run alembic upgrade headuv run uvicorn app.main:app --reload서버가 http://localhost:8000 에서 실행됩니다.
API 문서: http://localhost:8000/docs