Files
arasystem/.claude/rules/coding-common.md
T
ttipo 5ce614cc0c docs: 업데이트 내역을 계약 7절 · 디자인 README · 스킬에 적는다
계약 7절(API 둘 · 글 파일 규칙)과 머리말의 달력 날짜 예외, 웹 · 앱 디자인 README 의 업데이트 내역 절, 세 스택 스킬 행을 더했다.
보드의 목록 최대 개수를 구현(100)에 맞추고, 편집 도구가 보이지 않는 글자의 이스케이프를 실제 글자로 푼 일을 공통 규칙에 적는다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 19:37:01 +09:00

2.8 KiB

name, description
name description
coding-common 세 클라이언트(backend/frontend/flutter) 공통 코딩 규칙 — 주석 언어, 타입 정책, 린트, 순수 유틸 분리, 절대경로 alias.

공통 코딩 규칙

  • 모든 코드 주석은 한국어로 작성
  • 웹(frontend)·서버(backend)는 100% TypeScript, 모바일(flutter)은 Dart Sound Null Safety 준수
  • 컴파일러/린터 Warning 방치 금지 — 커밋 전 각 프로젝트 lint / analyze 통과 (lint 스크립트에 --max-warnings 0 이 걸려 있다. 자동 수정은 npm run lint:fix)
  • 아래 규칙은 린트로 강제되므로 위반 시 빌드가 실패한다: any/dynamic 사용, console/print 출력, Vue 인라인 스타일·Options API, Dart const 누락·await 누락, backend 에서 HttpException 직접 생성(→ BusinessException 사용)
  • 유틸 함수는 순수 함수로 분리 — TS는 shared/utils/, Dart는 core/utils/
  • 매직 넘버·하드코딩 문자열 지양 → 상수 또는 환경변수로 분리 (반복 사용되는 키 문자열도 상수로: 예 kRefreshTokenKey, REQUEST_ID_HEADER)
  • 절대경로 alias 사용 (TS @/, Dart package:), 깊은 상대경로(../../) 지양 — backend/frontend 모두 @/ → src/ 로 설정되어 있다 (backend 는 tsconfig.json paths + jest moduleNameMapper)
  • 자동 생성 파일은 직접 수정하지 않는다 — *.generated.ts, *.g.dart 는 생성 스크립트를 통해서만 바꾼다 (error-codes)
  • 소스에 보이지 않는 글자(nbsp · U+2028 · U+FEFF 등)는 \uXXXX 이스케이프로 적되, 저장한 뒤 바이트로 확인한다 — 편집 도구가 U+00A0 이상의 이스케이프를 실제 글자로 풀어 저장한 일이 있다(2026-11-10 — 정규식 안의 U+2028 이 줄 끝이 되어 컴파일 실패, 16단계에서는 U+FEFF). 풀리면 String.fromCharCode(0x2028) 처럼 글자 코드로 만든다

네이밍 규약

대상 규칙 예
TS 파일(일반) kebab-case user.store.ts, use-api.ts / 기존 composable 은 useApi.ts 형태 유지
Vue 컴포넌트 파일 PascalCase BaseButton.vue, UserCard.vue
Dart 파일·디렉터리 snake_case dio_client.dart, user_repository.dart
클래스/타입 PascalCase UserModel, TransformInterceptor
변수/함수 camelCase (Dart 포함) getUser, isLoggedIn
상수 TS UPPER_SNAKE 또는 모듈 상수, Dart lowerCamel MAX_RETRY, defaultTimeout
에러 코드 DOMAIN_NNN AUTH_001, VAL_001 (error-codes)
자동 생성 파일 TS *.generated.ts, Dart *.g.dart error-codes.generated.ts, error_lexicon.g.dart

도메인별 세부 규칙: nestjs · vue3 · flutter · 테스트: testing · 로깅: logging · API 설계: api-design