added ai guideline
This commit is contained in:
parent
850ff5a1f3
commit
3482e1ade6
7
.aiignore
Normal file
7
.aiignore
Normal file
@ -0,0 +1,7 @@
|
||||
# An .aiignore file follows the same syntax as a .gitignore file.
|
||||
# .gitignore documentation: https://git-scm.com/docs/gitignore
|
||||
# Junie will ask for explicit approval before view or edit the file or file within a directory listed in .aiignore.
|
||||
# Only files contents is protected, Junie is still allowed to view file names even if they are listed in .aiignore.
|
||||
# Be aware that the files you included in .aiignore can still be accessed by Junie in two cases:
|
||||
# - If Brave Mode is turned on.
|
||||
# - If a command has been added to the Allowlist — Junie will not ask for confirmation, even if it accesses - files and folders listed in .aiignore.
|
47
.junie/guidelines.md
Normal file
47
.junie/guidelines.md
Normal file
@ -0,0 +1,47 @@
|
||||
# 프로젝트 가이드라인 — ProjectDDD (Unity)
|
||||
|
||||
이 저장소는 주로 Unity 에디터를 통해 편집 및 실행됩니다. 코드는 Unity의 .NET/Mono 환경을 대상으로 하며, 컴파일은 일반적인 `dotnet` CLI 빌드가 아니라 대개 Unity가 주도합니다.
|
||||
|
||||
## 저장소 레이아웃(상위 수준)
|
||||
- `Assets/` – 게임 콘텐츠와 스크립트. 대부분의 수정은 여기서 이루어집니다.
|
||||
- `Packages/` – Unity 패키지 매니페스트와 임베디드 패키지.
|
||||
- `ProjectSettings/` 및 `UserSettings/` – Unity 설정. 지시가 없는 한 수동으로 수정하지 마십시오.
|
||||
- `Library/`, `Temp/`, `obj/`, `Logs/` – Unity/IDE가 생성. 이 디렉터리는 수정하거나 커밋하지 마십시오.
|
||||
- `ServerData/`, `Docs/` – 프로젝트별 데이터와 문서가 있다면 여기에 있습니다.
|
||||
- 다수의 `*.csproj` 파일 – Rider/IDE 지원을 위한 자동 생성 파일; 특별히 필요하지 않는 한 수동 수정 금지.
|
||||
|
||||
## 이 프로젝트에서 Junie의 작업 방식
|
||||
- 문제를 직접 해결하는 최소하고도 목표 지향적인 코드 변경을 선호합니다.
|
||||
- Unity가 생성한 폴더들(`Library/`, `Temp/`, `obj/`, `Logs/`)이나 패키지 캐시 내용은 수정하지 않습니다.
|
||||
- 새로운 스크립트는 `Assets/` 아래 적절한 도메인 폴더에 배치합니다. `_DDD/_Scripts` 하위의 기존 폴더 규칙을 유지합니다.
|
||||
- `.csproj` 파일은 수정하지 않습니다. Unity가 재생성합니다.
|
||||
- Addressables를 다룰 때는 그룹 설정을 일관되게 유지하고 의도치 않은 대용량 데이터 변경을 커밋하지 않습니다.
|
||||
|
||||
## 빌드, 실행, 테스트
|
||||
- 기본 실행 환경은 Unity Editor/Player입니다. 독립 실행형 단위 테스트가 없을 수 있습니다.
|
||||
- 작업이 명시적으로 요구하지 않는 한 .NET 테스트 러너나 CLI 빌드를 시도하지 말고, 컴파일은 Unity에 맡기십시오.
|
||||
- 코드를 추가할 때는 Unity에서 컴파일 가능한지 확인하십시오(런타임 코드에서 에디터 전용 API 직접 호출 금지, 네임스페이스 올바름, 사용할 수 없는 API 사용 금지).
|
||||
- 본 문서와 같은 순수 문서/설정 작업에서는 빌드가 필요 없습니다.
|
||||
|
||||
## 코딩 및 스타일 가이드(C#/Unity)
|
||||
- 표준 C# 컨벤션을 따르십시오: 공용 타입과 멤버는 PascalCase, 지역 변수와 매개변수는 camelCase.
|
||||
- private 직렬화 필드는 `[SerializeField] private Type _fieldName;` 형태를 선호하고, 필요 시 프로퍼티로 노출하십시오.
|
||||
- Unity API 호출은 메인 스레드에서 수행하십시오. `Update`/`FixedUpdate` 내부의 과도한 할당을 피하십시오.
|
||||
- `async`/`await`는 신중하게 사용하십시오. 대부분의 엔진 API 호출에는 Unity 메인 스레드 동기화가 필요합니다.
|
||||
- 거대한 모놀리식 구조보다 작은, 역할에 집중된 컴포넌트 구성을 선호합니다. 프로젝트의 DDD 경계를 준수하십시오.
|
||||
- null 체크와 가드 절을 추가하고, 개발 빌드에서는 명확한 메시지와 함께 빠르게 실패하도록 하십시오.
|
||||
|
||||
## Addressables 및 리소스
|
||||
- `Addressables.LoadAssetAsync<T>`로 로드하고, 사용 후 핸들을 해제하여 누수를 방지하십시오.
|
||||
- 일반 게임 플레이 코드에서 Addressable 그룹을 프로그래밍적으로 수정하지 마십시오. 그룹/라벨 변경은 명시적으로 필요하지 않는 한 에디터에서 수행하십시오.
|
||||
|
||||
## 수정 금지(명시적 지시가 없는 한)
|
||||
- `Library/`, `Temp/`, `obj/`, `Logs/`, 그리고 `Library/PackageCache/` 아래의 Unity 패키지 캐시.
|
||||
- 루트의 자동 생성 `*.csproj` 파일.
|
||||
- 작업과 무관한 대용량 바이너리 에셋.
|
||||
|
||||
## 자동화 작업의 완료 정의
|
||||
- 이슈를 완전히 충족하는 최소 변경을 제공합니다.
|
||||
- 각 응답에 계획, 진행 상황, 다음 단계를 포함한 `<UPDATE>`를 포함합니다.
|
||||
- 코드가 변경되었다면, 에지 케이스를 고려하고 런타임 경로에서 에디터 전용 API 사용을 피하십시오.
|
||||
- 제출 전에 의도치 않은 파일(특히 생성 디렉터리와 Addressable 그룹)이 수정되지 않았는지 확인하십시오.
|
Loading…
Reference in New Issue
Block a user