프로젝트 CLAUDE.md
프로젝트 루트에 위치하는 CLAUDE.md 파일의 예시입니다.
기본 구조
# 프로젝트: [프로젝트 이름]
## 개요
프로젝트에 대한 간단한 설명
## 기술 스택
- Frontend: Next.js, TypeScript, TailwindCSS
- Backend: FastAPI, Python
- Database: Supabase (PostgreSQL)
## 주요 규칙
1. 규칙 1
2. 규칙 2
3. 규칙 3
## 파일 구조
프로젝트의 주요 디렉토리 설명
## 코드 스타일
코딩 컨벤션 및 스타일 가이드실제 예시: Next.js 프로젝트
# 프로젝트: My E-commerce Platform
## 개요
React + Next.js 기반 이커머스 플랫폼. 사용자 인증, 상품 관리, 결제 기능 포함.
## 기술 스택
- **Frontend**: Next.js 15 (App Router), TypeScript, TailwindCSS
- **Backend**: Next.js API Routes
- **Database**: Supabase (PostgreSQL)
- **결제**: Stripe
- **인증**: NextAuth.js
## 주요 규칙
### 코딩 규칙
1. 모든 컴포넌트는 함수형 컴포넌트 사용
2. TypeScript strict 모드 필수
3. 테스트 커버리지 80% 이상 유지
4. console.log 프로덕션 코드에서 금지
### Git 규칙
1. 커밋 메시지는 한글로 작성
2. 컨벤셔널 커밋 형식 사용
3. PR 생성 시 테스트 필수
### 보안 규칙
1. 하드코딩된 시크릿 금지
2. 모든 입력 검증 필수
3. SQL 인젝션 방지
## 파일 구조
\`\`\`
src/
├── app/ # Next.js App Router
│ ├── api/ # API 라우트
│ ├── (auth)/ # 인증 관련 페이지
│ └── (shop)/ # 쇼핑 관련 페이지
├── components/ # React 컴포넌트
│ ├── ui/ # 기본 UI 컴포넌트
│ └── features/ # 기능별 컴포넌트
├── lib/ # 유틸리티
└── types/ # TypeScript 타입
\`\`\`
## 코드 스타일
### 컴포넌트 구조
\`\`\`typescript
interface Props {
// props 정의
}
export function ComponentName({ prop1, prop2 }: Props) {
// 로직
return (
// JSX
)
}
\`\`\`
### API 응답 형식
\`\`\`typescript
interface ApiResponse<T> {
success: boolean
data?: T
error?: string
}
\`\`\`
## 실행 방법
\`\`\`bash
# 개발 서버
npm run dev
# 테스트
npm test
# 빌드
npm run build
\`\`\`
## 환경 변수
\`\`\`bash
# .env.local
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
STRIPE_SECRET_KEY=
NEXTAUTH_SECRET=
\`\`\`실제 예시: Python 백엔드 프로젝트
# 프로젝트: API Server
## 개요
FastAPI 기반 RESTful API 서버. 마이크로서비스 아키텍처.
## 기술 스택
- **Framework**: FastAPI
- **ORM**: SQLAlchemy
- **Database**: PostgreSQL
- **Cache**: Redis
- **Queue**: Celery
## 주요 규칙
### 코딩 규칙
1. PEP 8 준수
2. Type hints 필수
3. Docstring 작성 (Google 스타일)
4. 테스트 커버리지 80% 이상
### API 규칙
1. RESTful 설계 원칙 준수
2. 버전 관리 (/api/v1/)
3. 일관된 응답 형식
4. 적절한 HTTP 상태 코드 사용
## 파일 구조
\`\`\`
app/
├── api/
│ └── v1/
│ ├── endpoints/ # API 엔드포인트
│ └── deps.py # 의존성
├── core/
│ ├── config.py # 설정
│ └── security.py # 보안
├── models/ # SQLAlchemy 모델
├── schemas/ # Pydantic 스키마
├── services/ # 비즈니스 로직
└── tests/ # 테스트
\`\`\`
## 코드 스타일
### 엔드포인트 구조
\`\`\`python
@router.get("/{item_id}", response_model=ItemResponse)
async def get_item(
item_id: int,
db: Session = Depends(get_db),
current_user: User = Depends(get_current_user),
) -> ItemResponse:
"""아이템 조회."""
item = await item_service.get(db, item_id)
if not item:
raise HTTPException(status_code=404, detail="Item not found")
return item
\`\`\`
## 실행 방법
\`\`\`bash
# 개발 서버
poetry run uvicorn app.main:app --reload
# 테스트
poetry run pytest
# 마이그레이션
poetry run alembic upgrade head
\`\`\`CLAUDE.md 작성 팁
효과적인 CLAUDE.md 작성을 위한 팁
1. 간결하게 유지
- 핵심 정보만 포함
- 중복 피하기
- 필요시 다른 문서 참조
2. 구체적인 규칙
# 좋음
- 함수는 50줄 미만으로 유지
- 테스트 커버리지 80% 이상
# 나쁨
- 코드를 깨끗하게 유지
- 테스트 작성3. 예시 포함
규칙을 설명할 때 코드 예시를 포함하세요.
4. 정기적 업데이트
프로젝트가 발전함에 따라 CLAUDE.md도 업데이트하세요.