diff --git a/README.md b/README.md index e099b40..8de387b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,108 @@ # Wizard_Of_Wak -왁타버스 팬게임 깃 저장소 \ No newline at end of file +왁타버스 팬게임 깃 저장소 + + +# Git 브랜치 및 커밋 컨벤션 + +## 📌 브랜치 네이밍 규칙 + +| 브랜치명 형식 | 설명 | 예시 | +|----------------------------|--------------------------------------|----------------------------------| +| `master` | 최상위 브랜치 (배포용) | `master` | +| `feat_{기능단위/명칭}` | 새로운 기능 개발 브랜치 | `feat_auth/login`, `feat_shop/gacha` | +| `fix_{issue_num}` | 일반 버그 수정 브랜치 | `fix_102`, `fix_345` | +| `hotfix_{issue_num}` | 긴급 버그 패치 브랜치 | `hotfix_201`, `hotfix_999` | +| `release_{명칭}` | 릴리즈 빌드용 브랜치 | `release_v1.2.0`, `release_beta` | + +--- + +## 📝 커밋 메시지 규칙 + +커밋 메시지는 다음과 같은 형식으로 작성합니다: + +``` +[{작업약어}] 한 줄 요약 (줄 바꿈 없이 50자 내외) + +(한 줄 공백) + +자세한 설명 작성 (필요시) +``` + +### 작업 약어 목록 + +| 약어 | 설명 | +|-------------|-----------------------------------------------| +| `[fix]` | 버그 수정 | +| `[add]` | 새로운 파일 또는 기능 추가 | +| `[del]` | 파일 삭제 | +| `[gitfix]` | `.gitignore`, `.gitattributes` 등 Git 설정 수정 | +| `[refactor]`| 코드 리팩토링 (기능 변화 없음) | +| `[test]` | 테스트 코드 작성 또는 테스트 작업 | +| `[chore]` | 빌드 설정, 문서 변경 등 기타 잡일 | + +--- + +### ✅ 커밋 메시지 예시 + +#### 기능 추가 + +``` +[add] 로그인 API 구현 + +사용자 로그인 기능을 위한 컨트롤러, 서비스, 라우터를 추가했습니다. +JWT 발급 및 유효성 검증도 포함되어 있습니다. +``` + +#### 버그 수정 + +``` +[fix] 로그인 실패 시 500 에러 반환 문제 해결 + +존재하지 않는 사용자일 때도 서버 오류가 발생하던 문제를 +적절한 401 응답을 주도록 수정했습니다. +``` + +#### 리팩토링 + +``` +[refactor] 유저 인증 미들웨어 리팩토링 + +복잡했던 조건문을 함수 분리하여 가독성을 개선했습니다. +``` + +#### 테스트 추가 + +``` +[test] 로그인 API 단위 테스트 추가 + +성공, 실패 케이스에 대한 단위 테스트를 작성했습니다. +``` + +#### 설정 파일 수정 + +``` +[gitfix] .gitignore에 .env 추가 + +환경 변수 파일이 Git에 올라가지 않도록 설정을 추가했습니다. +``` + +--- + +## 🧾 코드 명명 규칙 (MSDN 기반 - C# 스타일, 일부 수정) + +MSDN 권장 명명법을 따르되, **카멜 표기에서 `_` 접두어는 사용하지 않습니다**. + +| 항목 | 표기법 | 예시 | +|-------------------|----------------|-----------------------------| +| 클래스 이름 | PascalCase | `UserService`, `LoginManager` | +| 메서드 이름 | PascalCase | `GetUser()`, `Authenticate()` | +| 지역 변수 | camelCase | `userId`, `loginToken` | +| 매개변수 | camelCase | `string userName` | +| 속성 (Property) | PascalCase | `UserId`, `AccessToken` | +| 인터페이스 | PascalCase + I | `IUserRepository`, `ILogger` | +| 열거형 (enum) | PascalCase | `UserType.Admin`, `Status.Active` | +| 상수 (const) | PascalCase | `MaxRetryCount`, `DefaultPort` | +| private 필드 | camelCase | `loginCount`, `retryLimit` | + +> ⚠️ `private` 필드에 `_`를 붙이지 않고, 일반 `camelCase`로 작성합니다. \ No newline at end of file