확정 · 게이트 · 절차
10. 확정 사항과 미결 사항
| 확정 | 내용 |
|---|---|
| Unity 하한 6 | 미만 버전 미지원. 사문 분기 삭제·게이트 교체·문서 명시까지 한 묶음 |
| 접미사 필수 | <테이블>Rules.cs 강제 + 구 명명에 안내 에러 |
| 개명 일괄 전환 | Validate(Context), 이중 지원 없음 |
| 출력 형식 배타 | 소스 / 어셈블리 중 하나 |
| 규칙 컴파일 참조 | 항상 임베드 세트 (환경 무차이) |
| 규칙 파일의 using | 현행 유지 — 파일 상단에 명시적으로 적습니다. global usings를 도입하지 않습니다 |
| 접근자 객체화 | 인스턴스 + 전역 헬퍼 병행, 검증은 context.Tables — 상세는 접근자 객체화 |
| 규칙 우선순위 | 순차 스테이지 한정 · 티어 + 차단점 · 어트리뷰트 지정 + 조회 명령 — 상세는 규칙 우선순위 |
| 이름 체계 | 정본 하나에서 언어별 표기로 파생 · AccessorName이 타입 이름을 정하게 — 상세는 생성 코드의 이름 체계 |
| 미결 | 선택지 | 권고 |
|---|---|---|
| API 분리 방식 (5a) | 물리 분리 / ref asm 동봉 | 물리 분리 — 단 Context 의존 실측 후 확정 |
| 계약 어셈블리 이름 | — | 생성 코드의 이름 체계 §3에서 함께 확정 |
.generated 중간 정책 | 소스 커밋 전환 / 비커밋 유지 | 7단계까지의 기간에 따라 |
| 옵션 형태 (7단계) | bool / enum 문자열 | 선례 일관성 기준 |
| 접근자 객체화 세부 (6단계) | 시임 귀속 등 4건. 이름은 9단계에서 함께 정합니다 | 접근자 객체화 §5에서 확정 |
| 스테이지별 컨텍스트 | pre/가 쓸 수 없는 멤버를 타입에서 빼는 안 | 접근자 객체화 §3.1에 기록. 6단계와 같은 주기에 할지 미결 |
| 이름 체계 세부 (9단계) | Rust·Python의 옵션 신설 여부 등 5건 | 생성 코드의 이름 체계 §5에서 확정 |
11. 게이트 목록
| 게이트 | 성격 | 단계 |
|---|---|---|
| 템플릿 파일 무시 확인 | 신설 | 1 |
| 구 명명·구 엔트리 안내 에러 | 신설 | 2 |
Unity 심볼 조합 컴파일 (CsGeneratorTests) | 교체 | 3 |
생성 코드 언어 수준 (EmittedCodeLanguageCheck) | 기준 변경 (C# 9) | 3 |
| 생성 공백 규칙 — 닫는 괄호 앞 빈 줄·연속 빈 줄 부재 단언 | 신설 — 픽스처에 여러 줄 문자열 상수가 없는 동안 유효 | 3 |
| 단일 파일 발행 후 검증 통과 | 신설 | 4 |
| clone 상태 IDE 컴파일 | 신설 | 5 |
| 접근자 인스턴스 병행·전역 위임·원자 교체 검사 | 신설 | 6 |
| netstandard2.1 컴파일 검사 | 신설 | 7 |
| dll 로드·표면·데이터 왕복 검사 | 신설 | 7 |
| 티어 순서의 결정성 · 차단점 · 건너뛴 규칙 보고 | 신설 | 8 |
| 전 언어에서 액세서 이름이 타입·파일에 함께 반영되는지 | 신설 | 9 |
| 문서 예제 코드가 실제 산출물과 맞는지 | 신설 | 9 |
12. 절차
- 1·2·8단계는 본 문서 승인 후 바로 착수 가능한 규모입니다. 3~7·9단계는 착수 시 본 문서의
해 당 절을 기준으로 하되, 5a는
Context의존 실측 결과를 이 문서에 반영한 뒤 구현합니다. - 템플릿·생성기를 건드리는 단계(3·6·7·9)는 골든 재기록 → 전 언어 비교본 재생성 → 샘플 재생성 → 기록 없이 재검증 순서를 지킵니다. 6과 9는 같은 주기에 묶습니다.
- 4~7단계의 착수 순서는 로드맵의 「다음에 할 것」 표와의 배치 판단이 선행되어야 합니다 — 참조 어셈블리 임베드가 그 표의 기존 항목이므로, 본 계획이 표의 순서를 임의로 앞지르지 않습니다.
EOD