LinkyBoard를 위한 AI 기반 백엔드 서비스입니다. FastAPI와 도메인 주도 설계(DDD)를 기반으로 구축되었습니다.
이 프로젝트는 LinkyBoard 플랫폼에 AI 기능을 제공하는 백엔드 서비스입니다.
# 의존성 설치 및 환경 설정
# pre-commit 훅 설치
make setup
# 환경 변수 설정
cp .env.example .env
# Docker 환경 실행
make docker-up- Framework: FastAPI
- Database: PostgreSQL
- ORM: SQLAlchemy 2.0
- Migration: Alembic
- Package Manager: Poetry
- Container: Docker & Docker Compose
.
├── app/
│ ├── api/
│ │ └── v1/ # API v1 라우터
│ ├── core/
│ │ ├── config.py # 환경 설정
│ │ ├── database.py # DB 연결
│ │ ├── exceptions.py # 전역 예외 처리
│ │ ├── logging.py # 로깅 설정
│ │ ├── middlewares/ # 미들웨어
│ │ │ ├── context.py # 요청 ID 컨텍스트
│ │ │ └── logging.py # 로깅 미들웨어
│ │ └── utils/ # 유틸리티
│ │ ├── datetime.py # 날짜/시간
│ │ └── pagination.py # 페이지네이션
│ ├── domains/ # 도메인 모듈
│ │ └── users/ # 사용자 도메인 예시
│ │ ├── router.py
│ │ ├── service.py
│ │ ├── repository.py
│ │ ├── models.py
│ │ ├── schemas.py
│ │ └── exceptions.py
│ └── main.py # 애플리케이션 엔트리포인트
├── migrations/ # Alembic 마이그레이션
├── tests/ # 테스트
├── docs/
│ ├── guides/ # 개발 가이드 (프로젝트 구조, 코드 규칙)
│ └── requirements/ # 서비스 요구사항 및 기획 문서
├── docker-compose.yml
├── Dockerfile
├── Makefile
├── pyproject.toml
└── README.md
- Python 3.13+
- Poetry
- Docker & Docker Compose
# 의존성 설치 및 환경 설정
make setup
# 환경 변수 설정
cp .env.example .env
# 데이터베이스 마이그레이션
make migrate
# 개발 서버 실행
make run# 전체 환경 실행 (빌드 포함)
make docker-up
# 환경 종료
make docker-down
# 로그 확인
make docker-logsmake help # 사용 가능한 명령어 목록
make install # Poetry 의존성 설치
make run # 개발 서버 실행
make test # 테스트 실행
make lint # 린트 검사
make format # 코드 포맷팅
make migrate # DB 마이그레이션 적용
make migrate-create # 새 마이그레이션 생성
make docker-build # Docker 이미지 빌드
make docker-up # Docker Compose 환경 실행
make docker-down # Docker Compose 환경 종료서버 실행 후 다음 URL에서 API 문서를 확인할 수 있습니다:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- API v1 Base URL: http://localhost:8000/api/v1
- 요청 ID 추적: 모든 요청에
X-Request-ID헤더 자동 부여 - 요청/응답 로깅: 메서드, 경로, 상태코드, 처리시간 자동 로깅
- 처리 시간 측정:
X-Process-Time헤더로 응답 시간 확인
- 날짜/시간: UTC/KST 변환, 포맷팅, 파싱 함수
- 페이지네이션:
PageParams의존성,PageResponse스키마
/api/v1/경로로 버전 관리- 새 버전 추가 시
app/api/v2/생성
app/domains/users/ 구조를 참고하여 새 도메인을 추가하세요:
app/domains/
├── users/ # 예시 도메인
│ ├── __init__.py
│ ├── router.py # API 라우터
│ ├── service.py # 비즈니스 로직
│ ├── repository.py # 데이터 접근
│ ├── models.py # SQLAlchemy 모델
│ ├── schemas.py # Pydantic 스키마
│ └── exceptions.py # 도메인 예외
└── your_domain/ # 새 도메인
└── ...새 도메인 라우터는 app/api/__init__.py에 등록하세요.
MIT License
Copyright (c) 2025 Wonjun Choi