isinthesky auth-fastapi .cursorrules file for Python

# FastAPI Hexagonal Architecture AI 프롬프트 가이드

## 1. 아키텍처 개요 분석

현재 프로젝트는 다음과 같은 헥사고날 아키텍처 구조를 따르고 있습니다:


```7:23:docs/Hexagonal.md
src/
├── app/
│   ├── api/              # Presentation Layer (FastAPI 엔드포인트)
│   │   ├── v1/
│   │   │   ├── endpoints/ # HTTP 라우트 정의
│   │   │   └── schemas/   # 요청 및 응답 데이터 모델 (Pydantic)
│   ├── core/             # Application Core
│   │   ├── domain/       # 도메인 엔티티와 비즈니스 규칙
│   │   ├── ports/        # Ports 인터페이스 정의 (입력/출력 경계)
│   │   └── services/     # Use Cases와 Application Logic
│   ├── adapters/         # Adapters (외부 시스템과의 통합)
│   │   ├── persistence/  # 데이터베이스 접근 (리포지토리 구현)
│   │   ├── external/     # 외부 API 클라이언트
│   │   └── cli/          # CLI와 같은 비 HTTP 인터페이스
│   ├── config/           # 설정 및 환경 변수 관리
│   └── tests/            # 테스트 코드
├── main.py               # FastAPI 어플리케이션 초기화
```


## 2. 프롬프트 가이드

### 2.1 도메인 엔티티 생성

```markdown
다음 요구사항에 맞는 도메인 엔티티를 생성해주세요:
- 엔티티 이름: [엔티티명]
- 속성: [속성 목록]
- 비즈니스 규칙: [규칙 목록]
- 값 객체: [값 객체 목록]

주의사항:
1. 외부 의존성 없이 순수 도메인 로직만 포함
2. dataclass 데코레이터 사용
3. 비즈니스 메서드 포함
4. 불변성 보장
```

### 2.2 포트 인터페이스 정의

```markdown
다음 요구사항에 맞는 포트 인터페이스를 정의해주세요:
- 포트 종류: [Query/Command/Repository]
- 대상 도메인: [도메인명]
- 필요한 작업: [작업 목록]

주의사항:
1. Protocol 클래스 사용
2. 추상 메서드로 정의
3. 명확한 입출력 타입 명시
4. 단일 책임 원칙 준수
```

### 2.3 어댑터 구현

```markdown
다음 요구사항에 맞는 어댑터를 구현해주세요:
- 어댑터 종류: [DB/외부API/캐시 등]
- 구현할 포트: [포트 인터페이스명]
- 기술 스택: [사용할 기술]

주의사항:
1. 포트 인터페이스 완벽 구현
2. 기술 종속적 코드 격리
3. 예외처리 포함
4. 트랜잭션 관리
```

### 2.4 API 엔드포인트 구현

```markdown
다음 요구사항에 맞는 API 엔드포인트를 구현해주세요:
- 엔드포인트: [HTTP 메서드 및 경로]
- 입력 스키마: [요청 데이터 구조]
- 출력 스키마: [응답 데이터 구조]
- 의존성: [필요한 서비스/포트]

주의사항:
1. FastAPI 라우터 사용
2. Pydantic 모델로 검증
3. 의존성 주입 활용
4. 예외처리 포함
```

### 2.5 서비스 레이어 구현

```markdown
다음 요구사항에 맞는 서비스를 구현해주세요:
- 서비스명: [서비스명]
- 사용할 포트: [포트 목록]
- 구현할 유스케이스: [유스케이스 목록]

주의사항:
1. 단일 책임 원칙 준수
2. 포트를 통한 의존성 주입
3. 트랜잭션 관리
4. 도메인 이벤트 처리
```

## 4. 품질 체크리스트

각 컴포넌트 구현 시 다음 사항을 확인하세요:

1. 도메인 중심
- [ ] 순수한 도메인 로직
- [ ] 외부 의존성 없음
- [ ] 비즈니스 규칙 캡슐화

2. 포트와 어댑터
- [ ] 명확한 인터페이스 정의
- [ ] 구현 교체 가능성
- [ ] 단방향 의존성

3. 의존성 주입
- [ ] 생성자 주입 사용
- [ ] 인터페이스 의존
- [ ] 구현체 분리

4. 테스트 용이성
- [ ] 단위 테스트 가능
- [ ] 목킹 가능
- [ ] 통합 테스트 준비

##한국어로 답변해줘
fastapi
golang
mako
python

First Time Repository

Python

Languages:

Mako: 0.6KB
Python: 68.1KB
Created: 12/9/2024
Updated: 1/5/2025

All Repositories (1)