검증 사용성과 C# 어셈블리 산출
상태: 설계 — 승인 (2026-08-14) · 근거 조사 2026-08-14 · 사용 문서는 검증 · C# · 선행 설계는 검증 파이프라인
사용자 피드백 8건에서 출발합니다.
- 검증 폴더(
pre/등)가 비어 있으면 git에 유지되지 않고, 새 규칙을 시작할 안내서가 없습니다. - 생성되는
Validation.csproj의 참조가 머신 종속 절대경로라, clone 직후에는 자동완성이 성립하지 않습니다. 요구는 「clone 직후, 아무것도 실행하지 않고 IDE를 열었을 때 자동완성이 되는 것」입니다. - C# 코드 생성을
.cs파일들 대신.dll하나로 받을 수 있어야 합니다. 체크아웃해서 쓰는 사람에게 생성 소스 108개는 노이즈입니다. - 규칙 파일은
Item.cs가 아니라ItemRules.cs여야 하고, 클래스 이름도 그래야 합니다. - 생성 C#의 공백 — 닫는 중괄호 앞에 항상 빈 줄이 있고(
} // namespace위), 연속 2줄 이상의 빈 줄이 나타나는 곳이 있습니다. - 생성 접근자가 전부 정적이라 인스턴스를 여럿 둘 수 없습니다. 객체화해서 인스턴스 생성을
허용하고, 전역 헬퍼(싱글턴처럼 쓰는 정적 표면)는 선택으로 남기며, 검증 규칙은
context.Tables로 접근합니다. - 검증 규칙에 우선순위를 지정할 수 있어야 합니다. 기반 규칙이 실패했을 때 그것에 의존하는 규칙들의 파생 오류를 막는 것이 목적입니다.
- 액세서 이름과 네임스페이스(패키지) 이름에 통일감이 있어야 합니다.
조사 결과 전부 실현 가능합니다. ②와 ③은 같은 선결 과제 — 참조 어셈블리 임베드 (로드맵 기존 항목) — 를 공유하고, 나머지는 독립적인 정비입니다. ⑤는 템플릿 변경이므로 3단계와 같은 골든 주기에 묶고, ⑥과 ⑧은 dll이 접근자의 공개 표면을 고정하기 전에 — 즉 7단계보다 먼저 — 수행하며 서로 같은 주기에 묶습니다.
확정 전제 — Unity 하한 6. 생성 C#의 Unity 지원 하한을 6.0 이상으로 상향합니다(Unity 6). 미만 버전은 지원하지 않습니다. 이 전제가 dll 변형 매트릭스와 netstandard 층 선택 문제를 소거하므로, 본 문서 전체에 전파되어 있습니다.
0. 전체 구도
[1] 폴더 보존·템플릿 독립 · 즉시 가능
[2] 명명·엔트리 규약 정비 독립 · 즉시 가능
[3] Unity 어댑터 외부화 독립 · 골든 절차 필요 · [7]에 선행
[5a] 계약 어셈블리 분리 → [4] 참조 어셈블리 임베드 ──┬─→ [5b·5c] 검증 IDE 체계
└─→ [7] C# .dll 출력
[6] 접근자 객체화 독립 · 골든 절차 필요 · [7]에 선행
[8] 규칙 우선순위 독립 · 즉시 가능
[9] 생성 코드의 이름 체계 골든 절차 필요 · [6]과 같은 주기 · [7]에 선행
1·2·8은 어디와도 의존이 없습니다. 3·6·9는 독립적으로 착수 가능하나 7에 선행합니다 — dll이 접근자의 공개 표면을 고정하기 때문입니다. 6과 9는 같은 템플릿의 같은 자리를 만지므로 한 골든 주기에 묶습니다.
4는 5a를 전제로 합니다(§4의 「착수 시 바로잡은 것」). 그리고 4는 5b·5c와 7의 전제입니다. 5와 7은 접근자 dll에서 합류합니다 — 둘이 완성되면 validation 폴더가 「사용자 규칙 .cs + 커밋 가능한 dll」로 완결되어 clone 직후 자동완성이 성립합니다.
위험이 큰 순서는 ⑤5a의 Context 결합 해소(유일한 중규모 리팩터링) → ④의 참조 세트 결정 →
커밋 바이너리의 결정성 → ⑥의 접근자 표면 재설계 → 나머지(기계적)입니다.
이 문서의 나머지
| 무엇 | 어디 |
|---|---|
| 1~4단계 — 폴더 · 명명 · 유니티 · 참조 어셈블리 | 폴더 템플릿 · 파일 명명 · 유니티 어댑터 분리 · 자립 배포본 |
| 5단계 — clone 직후 자동 완성 | 받은 사람이 변환을 돌리지 않아도 편집기가 오류 0으로 빌드되게 |
| 6~9단계 — 접근자와 출력 | 접근자 인스턴스 · .dll 출력 · 규칙 우선순위 · 이름 체계 |
| 확정 · 게이트 · 절차 | 무엇이 정해졌고 무엇이 남았는지, 게이트와 절차 |