modify harness framework
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Architecture Decision Records
|
||||
|
||||
제품명, 사용자, 업무 기능, UI와 배포 구조는 미정이다. 아래 결정은 제품 기술 경계와
|
||||
신규 프로젝트 기본값을 정하며 구체적인 도메인 설계를 대신하지 않는다.
|
||||
|
||||
## ADR-001: MSVC 기반 C++ 제품
|
||||
|
||||
- **상태:** 대체됨 (superseded by ADR-003)
|
||||
- **이전 결정:** 대상 제품을 MSVC 기반 C++로 개발한다.
|
||||
- **대체 이유:** 사용자가 C# 전용 .NET 8 템플릿 전환을 승인했다.
|
||||
- **결과:** 이전 C++·MSVC 지원과 호환 계층을 유지하지 않는다.
|
||||
|
||||
## ADR-002: public header 경계
|
||||
|
||||
- **상태:** 대체됨 (superseded by ADR-004)
|
||||
- **이전 결정:** 공개 header와 implementation의 의존성 방향을 유지하고
|
||||
`src/`, `include/`, `tests/`로 배치한다.
|
||||
- **대체 이유:** C#의 공개 API 접근성과 프로젝트 참조로 경계를 표현한다.
|
||||
|
||||
## ADR-003: C#·.NET 8 범용 제품 템플릿
|
||||
|
||||
- **상태:** 승인
|
||||
- **결정:** 제품 언어는 C#, 신규 제품 기본 TFM은 `net8.0`이다.
|
||||
`global.json`은 SDK `8.0.424`, `rollForward=latestPatch`,
|
||||
`allowPrerelease=false`를 기준으로 한다.
|
||||
- **이유:** 승인된 기술 전환 방향과 설치가 확인된 SDK 기준을 명시한다. 해당 SDK를
|
||||
최신 버전이라고 주장하지 않는다.
|
||||
- **대안·trade-off:** 다중 언어 호환 계층과 .NET Framework 4.x 지원은 제외한다.
|
||||
SDK 패치 갱신과 향후 런타임 전환은 별도로 검증한다.
|
||||
- **영향 경로:** `global.json`, 신규 제품 `.csproj`, `AGENTS.md`, 제품 문서.
|
||||
|
||||
## ADR-004: 공개 API와 프로젝트 참조 경계
|
||||
|
||||
- **상태:** 승인
|
||||
- **결정:** 공개 API의 접근성·nullability 계약과 제품이 정한 참조 방향을 유지한다.
|
||||
제품 프로젝트는 테스트 프로젝트를 참조하지 않는다. 권장 배치는
|
||||
`src/<ProjectName>/`와 `tests/<ProjectName>.Tests/`이다.
|
||||
- **이유:** 제품 소비자가 구현 세부사항이나 테스트 의존성을 부담하지 않도록 한다.
|
||||
- **대안·trade-off:** 별도 Contracts, DI와 계층을 템플릿에 미리 만들지 않는다.
|
||||
공개 계약 분리가 필요해질 때 제품 요구에 따라 결정한다.
|
||||
- **영향 경로:** 신규 제품·테스트 `.csproj`, 공개 C# API, `docs/ARCHITECTURE.md`.
|
||||
|
||||
## ADR-005: 신규 프로젝트의 테스트와 컴파일 기본값
|
||||
|
||||
- **상태:** 승인
|
||||
- **결정:** 신규 테스트는 xUnit v2 + VSTest를 기본으로 하고, nullable와 implicit
|
||||
usings를 활성화한다. C# 언어 버전은 SDK 기본값을 사용하고 빌드 경고는 오류로 처리한다.
|
||||
- **이유:** 실제 실행된 테스트와 컴파일 진단을 기본 검증 근거로 삼는다.
|
||||
- **대안·trade-off:** 기존 테스트 프레임워크는 VSTest/TRX 계약을 만족하면 사용할 수
|
||||
있다. MTP 전용 어댑터, 대규모 스타일 규칙과 커버리지 임계값은 도입하지 않는다.
|
||||
- **영향 경로:** 신규 제품·테스트 `.csproj`, `AGENTS.md`.
|
||||
|
||||
## 새 결정 형식
|
||||
|
||||
새 ADR에는 상태, 결정, 이유, 대안 또는 trade-off, 영향을 받는 경로를 기록한다.
|
||||
Harness 사용법과 실행 상태는 제품 ADR 대신 Harness 문서와 phase index에 기록한다.
|
||||
Reference in New Issue
Block a user