Codeground ‐ Coding Convention - Kraftonjungle-MyWeapon/Codeground-Backend GitHub Wiki
Code Ground – Coding & Git Convention
1. 프론트엔드 (React)
- 언어: JavaScript (ES6+) 또는 TypeScript
- 스타일 가이드: Airbnb JavaScript Style Guide + React 공식 스타일
- 코드 포매터: prettier, eslint
- 컴포넌트/폴더 네이밍:
- 컴포넌트 파일: PascalCase (예:
MainPage.js
,UserProfile.jsx
) - 폴더: kebab-case 또는 camelCase (예:
user-profile
,mainPage
)
- 컴포넌트 파일: PascalCase (예:
- 함수/변수명: camelCase
- JSX 내 props 순서: 필수 → 선택 → 기타
- 주석: 한글/영어 모두 가능, 함수/컴포넌트 단위 JSDoc 권장
2. 백엔드 (FastAPI)
- 언어: Python 3.11
- 스타일 가이드: PEP8
- 코드 포매터: black, flake8, isort
- 파일/폴더명: snake_case (예:
user_service.py
,main.py
) - 클래스명: CamelCase
- 함수/변수명: snake_case
- 주석: 한글/영어 모두 가능, 함수/클래스 단위 docstring 필수
- 환경변수/설정:
.env
파일 관리, 예시 파일(.env.example
) 공유
3. 데이터 분석 / Streamlit
- 언어: Python
- 스타일 가이드: PEP8 + 내부 데이터분석 가이드
- 노트북/스크립트명: snake_case (예:
anomaly_detection.py
) - 주석: 한글 가능, 함수 단위 docstring
- 포매터: black, isort
- 데이터 파일명: 날짜+의미 (예:
2024-06-23_anomaly_result.csv
)
4. AWS IaC / Infra 코드
(CloudFormation, CDK, Terraform 등)
- 포맷: YAML/JSON/TS (공식 문법, 들여쓰기 2 spaces)
- 리소스명: 팀 prefix + 목적 (예:
cg-prod-db
,cg-dev-cache
등) - 주석: 리소스 용도/의미 한 줄 설명
- 파일구조:
infrastructure/
,deploy/
등으로 명확히 구분
5. DB/캐시/스토리지
(MySQL, ElastiCache, S3 등)
- 테이블/컬럼명: 소문자 + 언더스코어 (예:
user_profile
,created_at
) - 인덱스/PK/FK: 명명 규칙 일관 (예:
pk_users
,fk_user_id
) - 스키마/DDL: 버전관리 (예:
db/migrations/
) - S3 파일명: 의미 + 날짜 (예:
user-code/2024-06-23/12345.py
)
6. 공통 협업 규칙
- Pull Request(merge) 전 1명 이상 코드 리뷰 필수
- pre-commit hook 등 도구를 활용해 코드 포매팅/린트 자동화 권장
- 모든 규칙과 설정법은 Notion, README, Wiki 등에서 팀원과 공유
- 이슈/커밋/PR 템플릿 작성 및 적극 활용