--- name: coding-common description: 세 클라이언트(backend/frontend/flutter) 공통 코딩 규칙 — 주석 언어, 타입 정책, 린트, 순수 유틸 분리, 절대경로 alias. --- # 공통 코딩 규칙 - 모든 코드 주석은 **한국어**로 작성 - 웹(`frontend`)·서버(`backend`)는 100% TypeScript, 모바일(`flutter`)은 Dart Sound Null Safety 준수 - 컴파일러/린터 **Warning 방치 금지** — 커밋 전 각 프로젝트 `lint` / `analyze` 통과 - 유틸 함수는 순수 함수로 분리 — TS는 `shared/utils/`, Dart는 `core/utils/` - 매직 넘버·하드코딩 문자열 지양 → 상수 또는 환경변수로 분리 - 절대경로 alias 사용 (TS `@/`, Dart `package:`), 깊은 상대경로(`../../`) 지양 ## 네이밍 규약 | 대상 | 규칙 | 예 | | --- | --- | --- | | 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]]) | > 도메인별 세부 규칙: [[nestjs]] · [[vue3]] · [[flutter]] · 테스트: [[testing]]