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)
  • 함수/변수명: 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 템플릿 작성 및 적극 활용