의미 체계 커널은 새로운 진화하는 기능에 대한 초기 액세스를 제공하는 실험적 기능을 도입합니다. 이러한 기능을 통해 사용자는 최첨단 기능을 탐색할 수 있지만 아직 안정적이지 않으며 향후 릴리스에서 수정, 사용 중단 또는 제거될 수 있습니다.
실험적 기능의 목적
Experimental 특성은 다음과 같은 몇 가지 주요 용도로 사용됩니다.
- 신호 불안정성 – 기능이 계속 진화하고 있으며 아직 프로덕션 준비가 되지 않음을 나타냅니다.
- 조기 피드백 권장 – 기능을 완전히 안정화하기 전에 개발자가 입력을 테스트하고 제공할 수 있습니다.
- 기대 조정 – 사용자가 실험적 기능에 제한된 지원 또는 문서화가 있을 수 있음을 이해하도록 합니다.
- 신속한 반복 지원 – 팀이 실제 사용량에 따라 기능을 구체화하고 개선할 수 있습니다.
- 가이드 기여자 – 유지 관리자와 기여자가 기능이 크게 변경될 수 있음을 인식하는 데 도움이 됩니다.
사용자에게 미치는 영향
실험적 기능을 사용하는 경우 다음과 같은 특정 고려 사항이 제공됩니다.
- 잠재적 호환성이 손상되는 변경 – API, 동작 또는 전체 기능은 사전 통지 없이 변경될 수 있습니다.
- 제한된 지원 – 의미 체계 커널 팀은 실험적 기능에 대해 제한되거나 지원되지 않을 수 있습니다.
- 안정성 문제 – 기능이 덜 안정적이고 예기치 않은 동작 또는 성능 문제가 발생할 수 있습니다.
- 불완전한 설명서 – 실험적 기능에는 불완전하거나 오래된 설명서가 있을 수 있습니다.
.NET에서 실험적 기능 경고 표시 안 함
.NET SDK에서 실험적 기능은 컴파일러 경고를 생성합니다. 프로젝트에서 이러한 경고를 억제하려면 관련 진단 ID를 .csproj 파일에 추가합니다.
<PropertyGroup>
<NoWarn>$(NoWarn);SKEXP0001,SKEXP0010</NoWarn>
</PropertyGroup>
각 실험적 기능에는 고유한 진단 코드(SKEXPXXXX)가 있습니다. 전체 목록은 EXPERIMENTS.md찾을 수 있습니다.
.NET에서 실험적 기능 사용
.NET에서 실험적 기능은 [Experimental] 특성을 사용하여 표시됩니다.
using System;
using System.Diagnostics.CodeAnalysis;
[Experimental("SKEXP0101", "FeatureCategory")]
public class NewFeature
{
public void ExperimentalMethod()
{
Console.WriteLine("This is an experimental feature.");
}
}
다른 SDK의 실험적 기능 지원
- Python 및 Java .NET과 같은 기본 제공 실험적 기능 시스템이 없습니다.
-
Python 실험적 기능은 경고(예:
warnings.warn)를 사용하여 표시될 수 있습니다. - Java개발자는 일반적으로 사용자 지정 주석을 사용하여 실험적 기능을 나타냅니다.
실험적 기능 개발 및 기여
기능을 실험적 기능으로 표시
- 클래스, 메서드 또는 속성에
Experimental특성을 적용합니다.
[Experimental("SKEXP0101", "FeatureCategory")]
public class NewFeature { }
- 이 기능이 실험적인 이유를 설명하는 간단한 설명을 포함합니다.
- 의미 있는 태그를 두 번째 인수로 사용하여 실험적 기능을 분류하고 추적합니다.
코딩 및 설명서 모범 사례
- 코딩 표준 따르기 – 의미 체계 커널의 코딩 규칙을 유지 관리합니다.
- 쓰기 단위 테스트 – 기본 기능을 보장하고 회귀를 방지합니다.
-
모든 변경 내용 문서화 –
EXPERIMENTS.md포함하여 관련 설명서를 업데이트합니다. - GitHub를 사용하여 토론 – 문제 또는 토론을 열어 피드백을 수집합니다.
- 기능 플래그 고려 – 적절한 경우 기능 플래그를 사용하여 옵트인/옵트아웃을 허용합니다.
변경 내용 전달
- 업데이트, 수정 또는 호환성이 손상되는 변경 내용을 명확하게 문서화합니다.
- 기능이 진화하는 경우 마이그레이션 지침을 제공합니다.
- 진행 상황을 추적하기 위해 관련 GitHub 문제에 태그를 지정합니다.
실험적 기능의 미래
실험적 기능은 다음 세 가지 경로 중 하나를 따릅니다.
- 안정적인 단계로의 졸업 – 기능이 호평을 받고 기술적으로 건전하면 안정적인 단계로 승격될 수 있습니다.
- 사용 중단 & 제거 – 장기 목표에 맞지 않는 기능은 제거될 수 있습니다.
- 연속 실험 – 일부 기능은 반복되는 동안 무기한 실험적으로 유지될 수 있습니다.
의미 체계 커널 팀은 릴리스 정보 및 설명서 업데이트를 통해 실험적 기능 업데이트를 전달하기 위해 노력하고 있습니다.
참여하기
커뮤니티는 실험적 기능의 미래를 형성하는 데 중요한 역할을 합니다. 다음을 통해 피드백을 제공합니다.
- GitHub 문제 – 버그를 보고하거나, 개선 사항을 요청하거나, 문제를 공유합니다.
- 토론 & PR – 토론에 참여하고 코드베이스에 직접 기여합니다.
요약
- 실험적 기능은 사용자가 의미 체계 커널의 새로운 기능을 테스트하고 피드백을 제공할 수 있게 합니다.
- 자주변경될 수 있으며, 지원이 제한되어 있으며, 프로덕션 환경에서 사용할 때는 주의해야 합니다.
-
참가자는모범 사례를 따르고,
[Experimental]올바르게 사용하고, 변경 내용을 올바르게 문서화해야 합니다. - 사용자는 실험적 기능에 대한 경고 표시하지 않을 수 있지만 진화된 기능을 계속 업데이트해야 합니다.
최신 세부 정보는 EXPERIMENTS.md확인하세요.