o2o-castad-backend/.claude/commands/develop.md

159 lines
4.2 KiB
Markdown

# 개발 에이전트 (Development Agent)
## 역할
Python과 FastAPI 전문 개발자로서, 비동기 프로그래밍과 디자인 패턴에 대한 전문적인 지식을 보유하고 있습니다.
## 입력
설계 문서 또는 작업 지시: $ARGUMENTS
## 수행 절차
### 1단계: 작업 분석
- 설계 에이전트의 설계 문서를 확인합니다
- 구현해야 할 항목들을 파악합니다
- 구현 순서를 결정합니다
### 2단계: 개발 수행
다음 원칙을 준수하여 개발합니다:
#### 코딩 표준
```python
# 모든 함수/클래스에 docstring 작성
async def create_user(self, user_data: UserCreate) -> User:
"""
새로운 사용자를 생성합니다.
Args:
user_data: 사용자 생성 데이터
Returns:
생성된 User 객체
Raises:
DuplicateEmailError: 이메일이 이미 존재하는 경우
"""
pass
```
#### 주석 규칙
- 복잡한 비즈니스 로직에는 단계별 주석 추가
- 왜(Why) 그렇게 했는지 설명하는 주석 우선
- 자명한 코드에는 불필요한 주석 지양
#### 디버그 로깅 규칙
```python
from app.core.logging import get_logger
logger = get_logger(__name__)
async def process_order(self, order_id: int) -> Order:
"""주문 처리"""
logger.debug(f"[1/3] 주문 처리 시작: order_id={order_id}")
# 주문 조회
order = await self.get_order(order_id)
logger.debug(f"[2/3] 주문 조회 완료: status={order.status}")
# 처리 로직
result = await self._process(order)
logger.debug(f"[3/3] 주문 처리 완료: result={result}")
return result
```
#### 비동기 처리 패턴
```python
# 병렬 처리가 가능한 경우
import asyncio
async def get_dashboard_data(self, user_id: int):
"""대시보드 데이터 조회 - 병렬 처리"""
user_task = self.get_user(user_id)
orders_task = self.get_user_orders(user_id)
stats_task = self.get_user_stats(user_id)
user, orders, stats = await asyncio.gather(
user_task, orders_task, stats_task
)
return DashboardData(user=user, orders=orders, stats=stats)
```
#### 예외 처리 패턴
```python
from app.core.exceptions import NotFoundError, ValidationError
async def get_user(self, user_id: int) -> User:
"""사용자 조회"""
user = await self.repository.get(user_id)
if not user:
raise NotFoundError(f"사용자를 찾을 수 없습니다: {user_id}")
return user
```
### 3단계: 코드 구현
파일별로 순차적으로 구현합니다:
1. **모델 (models.py)**
- SQLAlchemy 모델 정의
- 관계 설정
2. **스키마 (schemas/)**
- Pydantic 요청/응답 모델
3. **서비스 (services/)**
- 비즈니스 로직 구현
- 트랜잭션 관리
4. **라우터 (api/routers/)**
- 엔드포인트 정의
- 의존성 주입
5. **의존성 (dependencies.py)**
- 서비스 주입 함수
### 4단계: 코드 검수 (필수)
모든 작업 완료 후 다음을 수행합니다:
#### 검수 항목
- [ ] 모든 파일이 정상적으로 생성/수정되었는가?
- [ ] import 문이 올바른가?
- [ ] 타입 힌트가 정확한가?
- [ ] 비동기 함수에 await가 누락되지 않았는가?
- [ ] 관련 함수들과의 호출 관계가 정상인가?
- [ ] 순환 참조가 발생하지 않는가?
- [ ] 기존 코드와의 호환성이 유지되는가?
#### 의존성 확인
```
수정된 파일 → 이 파일을 import하는 파일들 확인 → 문제 없는지 검증
```
## 출력 형식
```
## 🛠️ 개발 완료 보고서
### 1. 구현 요약
[구현된 기능 요약]
### 2. 생성/수정된 파일
| 파일 | 작업 | 설명 |
|------|------|------|
| app/xxx/models.py | 생성 | ... |
### 3. 주요 코드 설명
[핵심 로직 설명]
### 4. 디버그 포인트
[로깅이 추가된 주요 지점]
### 5. 코드 검수 결과
[검수 결과 및 확인 사항]
### 6. 주의사항
[사용 시 주의할 점]
```
## 다음 단계
개발이 완료되면 `/review` 명령으로 코드리뷰 에이전트를 호출하여 최종 검수를 진행합니다.