- constants.md: 스킬 레벨/스탯 요구사항 구체적 값 제거, 구조 원칙만 유지 - deployment_patterns.md: 구체적 배포 플로우/SSH Secrets 이름 제거, 패턴 원칙만 유지 - logging_rules.md: 구체적 경로/주소 제거, 원칙만 유지 - naming_conventions.md: 구체적 예시 제거, 원칙만 유지 - 실제 값은 각 서비스 README 참조로 변경
2.1 KiB
2.1 KiB
네이밍 컨벤션 원칙
작성일: 2025-12-06 목적: 코드 일관성 유지, 가독성 향상
파일명
Python
- router:
{기능}_endpoint.py(예:message_endpoint.py) - service:
{도메인}_{기능}.py(예:coldmail_filter.py) - state:
{도메인}_repository.py(예:conversation_repository.py)
참고: DOCS/book/300_architecture/311_FastAPI_구조_원칙.md:53-63
디렉토리
router/: HTTP 엔드포인트services/: 비즈니스 로직state/: DB 접근 (Repository 패턴)models/: ORM 모델schemas/: Pydantic 모델
참고: DOCS/book/300_architecture/311_FastAPI_구조_원칙.md:27-51
변수명
Python
- snake_case: 변수, 함수, 모듈
- PascalCase: 클래스
- UPPER_CASE: 상수
예시:
user_id = "uuid" # 변수
def get_user_info(): # 함수
pass
class UserService: # 클래스
pass
MAX_RETRIES = 3 # 상수
API 엔드포인트
경로 규칙
- kebab-case: URL 경로 (예:
/api/intent-review/queue) - RESTful: 리소스 중심 (예:
/api/events/{event_id})
참고: rb8001/app/router/intent_review_endpoint.py:33
데이터베이스
테이블명
- snake_case: 소문자, 언더스코어 (예:
conversation_log) - 복수형: 컬렉션 의미 (예:
users,conversations)
컬럼명
- snake_case: 소문자, 언더스코어 (예:
user_id,created_at) - UUID:
id또는{entity}_id(예:user_id)
참고: DOCS/book/300_architecture/database/tables.md
환경변수
명명 규칙
- UPPER_SNAKE_CASE: 대문자, 언더스코어
- 명확한 의미:
DATABASE_URL,JWT_SECRET_KEY
참고: 각 서비스 README.md
서비스명
컨테이너명
- kebab-case: 소문자, 하이픈 사용
- 실제 이름은 각 서비스 README 참조
서비스 ID
- 소문자: 일관된 형식 유지
- 실제 ID는 각 서비스 README 참조
참고: AGENTS.md:78-81
업데이트: 컨벤션 변경 시 즉시 반영