## 코딩 규칙

### 공통

- 모든 코드 주석은 **한국어**로 작성
- 웹/서버는 100% TypeScript, Warning 방치 금지
- 유틸 함수는 `shared/utils/`에 순수 함수로 분리

### Git 커밋 컨벤션

feat: / fix: / refactor: / docs: / chore: / perf:
예: `feat: 납기오더 페이지네이션 추가`

### 에러 코드 맵핑

| 코드     | 상황          | 메시지                                 |
| -------- | ------------- | -------------------------------------- |
| SYS_001  | 500 Error     | "일시적인 시스템 오류가 발생했습니다." |
| AUTH_001 | 401           | "로그인이 필요한 서비스입니다."        |
| AUTH_002 | 세션 만료     | "안전을 위해 로그아웃 되었습니다."     |
| AUTH_003 | 403           | "해당 기능에 접근 권한이 없습니다."    |
| VAL_001  | Validation    | "입력하신 정보를 다시 확인해 주세요."  |
| RES_001  | 404           | "요청하신 정보를 찾을 수 없습니다."    |
| BIZ_001  | 비즈니스 오류 | "요청하신 작업을 완료하지 못했습니다." |

### 보안

- `.env` 외 민감정보 Git 커밋 금지
- JWT는 HttpOnly Secure 쿠키 사용 (localStorage 금지)
- TypeORM ORM 쿼리 사용으로 SQL Injection 차단
- Docker 컨테이너 내부 root 실행 금지

## 개발 규칙 참조

@.claude/commands/nestjs.md
@.claude/commands/vue3.md
