Skip to content

Commit bdaea7f

Browse files
committed
feat: 외부 문서 작성
1 parent 8195f56 commit bdaea7f

File tree

7 files changed

+141
-0
lines changed

7 files changed

+141
-0
lines changed

Assets/Editor/OpenDocsMenu.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
public static class OpenDocsMenu
5+
{
6+
/**
7+
* 프로젝트 문서(루트 Docs/)를 파일 탐색기로 여는 메뉴 항목을 추가합니다.
8+
*/
9+
[MenuItem("Help/Open Project Docs")]
10+
public static void OpenProjectDocs()
11+
{
12+
13+
}
14+
}

Docs/Conventions/Branching.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 브랜치 전략
2+
3+
## 기본 원칙
4+
- `develop` 브랜치를 기준으로 작업합니다.
5+
- 기능 단위 브랜치를 생성합니다. 예: `feature/chat-ui`, `fix/network-error`.
6+
7+
## 머지 정책
8+
- PR 머지 전 테스트 통과가 필수입니다.
9+
- 문서 및 설명은 `Docs/` 폴더에 저장합니다.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# C# 코드 스타일
2+
3+
## C# 식별자
4+
| 대상 | 규칙 | 예시 |
5+
|---|---|---|
6+
| 클래스/구조체/열거형/속성/메서드 | PascalCase | ChatManager, MessageType, LoadConfig |
7+
| 인터페이스 | IPascalCase | IChatService |
8+
| 상수(const) | UPPER_SNAKE_CASE | DEFAULT_TIMEOUT_MS |
9+
| 비공개 필드 | _camelCase | _sessionId |
10+
| 직렬화 비공개 필드 | _camelCase | _gain |
11+
| 매개변수/지역변수 | camelCase | messageText |
12+
| 제네릭 매개변수 | TName | TItem, TResponse |
13+
14+
## C# 패턴
15+
| 항목 | 규칙 | 예시 |
16+
|---|---|---|
17+
| 불리언 | Is/Has/Can/Should 접두사 | IsConnected, HasData |
18+
| 이벤트 이름 | OnXxx / XxxChanged | OnMessageReceived, VolumeChanged |
19+
| 비동기 메서드 | Async 접미사, ct 매개변수 | LoadAsync(CancellationToken ct) |
20+
| 네임스페이스 | 폴더 구조 반영, 루트 ProjectVG | ProjectVG.Domain.Chat |
21+
| 파일명 | 공개 루트 타입명과 동일 | ChatManager.cs |
22+
23+
공개 API는 명령형 동사를 사용합니다(Initialize/Apply/Load 등).

Docs/Conventions/Commit_Message.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# 커밋 메시지 규칙
2+
3+
## 구성 요소
4+
| 항목 | 필수 | 설명 | 예시 |
5+
|---|---|---|---|
6+
| Type || Commit의 종류(소문자). 이모지 사용 금지 | `feat`, `fix`, `refactor` |
7+
| Scope | 선택 | Commit의 범위(기능/함수/페이지/API 등) | `login`, `signup`, `network` |
8+
| Subject || 제목은 간결하게, 명사형 어미로 종료 | `회원가입 기능 추가` |
9+
| Body | 선택 | 왜/어떻게 변경했는지 요약 | 변경 배경, 접근, 영향 범위 |
10+
| Footer | 선택 | 이슈 트래킹/참고 사항 | `Closes #123` |
11+
12+
## 헤더 예시
13+
```
14+
<type>(optional scope): <subject>
15+
```
16+
17+
- 주의: 이모지 사용 금지, type은 전부 소문자 (예: `feat:`, `fix(login):`)
18+
19+
## 예시
20+
| type | 예시 메시지 |
21+
|---|---|
22+
| feat | `feat(login/signup): 회원가입 기능 추가` |
23+
| fix | `fix(login): 로그인 기능 수정` |
24+
| style | `style: 코드 포맷 변경` |
25+
| refactor | `refactor(signup): 회원 가입 로직 개선` |
26+
| file | `file: 이미지 파일 추가` |
27+
| test | `test: 테스트 코드 추가` |
28+
| docs | `docs: README.md 업데이트` |
29+
| remove | `remove: 사용하지 않는 파일 제거` |
30+
| ci | `ci: 자동 배포 스크립트 변동` |
31+
| release | `release: 릴리즈 버전 1.0.3` |
32+
| chore | `chore: 설정파일 수정` |
33+
34+
## 메세지 구조
35+
```
36+
<type>(optional scope): <subject>
37+
38+
[optional body]
39+
40+
[optional footer(s)]
41+
```

Docs/Conventions/PR_Review.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# PR 리뷰 가이드
2+
3+
## 기준
4+
- PR 머지 전 모든 테스트가 통과해야 합니다.
5+
- 변경 사항 관련 문서는 `Docs/`에 정리합니다.
6+
7+
## 체크리스트
8+
- [ ] 테스트 통과
9+
- [ ] 변경 영향 범위 요약
10+
- [ ] 관련 문서 링크 또는 업데이트

Docs/Conventions/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Conventions
2+
3+
- 목적: 팀 공통 규칙의 단일 참조 지점
4+
- 적용 범위: C# 코드 스타일, Unity 에셋 네이밍, 브랜치/커밋/PR 규칙
5+
6+
## 문서 목록
7+
- [C# 코드 스타일](./CodeStyle_CSharp.md)
8+
- [Unity 에셋 네이밍](./Unity_Asset_Naming.md)
9+
- [브랜치 전략](./Branching.md)
10+
- [커밋 메시지 규칙](./Commit_Message.md)
11+
- [PR 리뷰 가이드](./PR_Review.md)
12+
13+
## 관련 가이드
14+
- `Assets/Docs/Guides/Unity_Naming_Conventions.md`
15+
- `Assets/Docs/Guides/ProjectVG_Structure_Guide.md`
16+
- `Assets/Docs/Guides/Manager_System_Guide.md`
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Unity 에셋 네이밍
2+
3+
## Unity 자산
4+
| 타입 | 규칙 | 예시 |
5+
|---|---|---|
6+
|| PascalCase, 역할 접미 허용(Main/Boot/Loading/Sample) | MainScene, LoadingScene |
7+
| 프리팹 | PascalCase, UI 루트 접두사 Panel/Dialog/HUD | PanelChat, DialogConfirm |
8+
| SO 에셋 | 타입명 기반 + 키 | NetworkConfig_Prod |
9+
| Addressables | Domain/Category/Name | UI/Panels/PanelChat |
10+
| 폴더 | PascalCase 단수형 | Domain/Character/Model |
11+
12+
## UI 위젯
13+
| 위치 | 규칙 | 예시 |
14+
|---|---|---|
15+
| Hierarchy 이름 | 접두사 사용 Panel/Btn/Img/Txt/Input/Scroll/Toggle/Slider/Dropdown | PanelChat, BtnSend |
16+
| 코드 필드명 | 의미 중심 camelCase | sendButton, titleText |
17+
18+
## 예시(요약)
19+
- MonoBehaviour: ScreenTapManager, Live2DModelManagerFacade
20+
- ScriptableObject: Live2DModelConfig, AppEnvironmentConfig
21+
- Prefab: PanelChat, ChatBubbleUI, AudioInputView
22+
- Scene: MainScene, Live2DScene
23+
24+
## 금지/주의
25+
- 범용어 남용: Data/Util/Helper/Manager(무의미 사용)
26+
- 약어 조합: Cfg/Ctrllr/Svc
27+
- 파일명 ≠ 타입명 불일치
28+
- 부정형 이벤트/플래그: NotReady → 긍정형 ShouldWait/IsReady

0 commit comments

Comments
 (0)