사용자 지정 업그레이드 지침은 업그레이드 중에 특정 변환을 적용하는 GitHub Copilot 현대화를 안내하는 Markdown 파일입니다. 이러한 파일을 만들어 하나의 라이브러리를 다른 라이브러리로 교체하거나 특정 API 업그레이드를 적용하는 등 반복적인 변경 내용을 자동화합니다.
이 문서에서는 사용자 지정 업그레이드 명령 파일을 만들고 구성하고, 격리된 상태로 테스트하고, 업그레이드 워크플로의 평가 단계에 통합하는 방법을 설명합니다.
필수 조건
사용자 지정 지침을 만들기 전에 개발 환경에서 GitHub Copilot 현대화를 설정합니다. 설치 단계는 GitHub Copilot 현대화 설정을 참조하세요.
사용자 지정 업그레이드 지침 이해
GitHub Copilot 현대화는 업그레이드의 평가 및 계획 단계에서 요청 시 Markdown 파일로 사용자 지정 업그레이드 지침을 검색합니다. 사용자 지정 업그레이드 지침은 copilot-instructions.md와 다른 점은 다음과 같습니다.
- 코드 및 종속성 변경 자동화를 대상으로 합니다.
- 현재 업그레이드 평가 또는 계획과 관련된 경우에만 검색됩니다.
- 각 리포지토리에 복사할 때 솔루션에서 다시 사용할 수 있습니다.
다음을 사용하여 명령 파일을 구성합니다.
- 작업을 설명하는 짧은 제목입니다. 예를 들어 "Newtonsoft.Json을 System.Text.Json으로 바꾸세요."
- 간결한 문제 설명 또는 필수 구성 요소 섹션입니다.
- 명시적 단계 논리("X가 발견되면 Y를 수행합니다"). 모호한 언어를 피하십시오.
- (권장) 실제 로컬 편집에서 캡처된 하나 이상의 차이 예제를 사용하여 변환을 안내합니다.
사용자 지정 업그레이드 지침 외에도 표준 기술 및 지침 시스템을 통해 GitHub Copilot 현대화를 확장할 수 있습니다. 기술은 에이전트에 기능을 추가하고 명령 파일(예: copilot-instructions.md)은 전역 지침을 제공합니다.
사용자 지정 업그레이드 명령 만들기
다음 단계에 따라 새 명령 파일을 생성하고 구체화합니다. 이러한 섹션에서는 Newtonsoft.Json를 System.Text.Json로 교체하는 예제에 중점을 두고 있습니다.
솔루션 탐색기 창에서 솔루션>Modernize를 마우스 오른쪽 버튼으로 클릭합니다.
-또는-
Copilot 채팅 패널을 열고
@Modernize입력하여 에이전트와 대화를 시작합니다.메모
이러한 단계는 Visual Studio 적용합니다. Visual Studio Code 및 기타 환경에서는 Copilot 채팅 패널에서 직접
modernize-dotnet에이전트를 호출합니다. Visual Studio 에이전트의 이름은Modernize.채팅에서 다음
I want to generate a custom upgrade instruction을 입력합니다.요청을 받으면, Copilot이 파일을 생성할 수 있도록
I want to replace Newtonsoft with System.Text.Json과 같은 시나리오를 제공합니다.Copilot
replace_newtonsoft_with_system_text_json.md같은 새 파일을 만들 때 콘텐츠를 검토하고 채팅에서 구체화합니다. 예를 들어 Copilot에게 "검색 기준을 명확히" 또는 "필수 구성 요소 섹션 추가." 행동을 요청하십시오.팁 (조언)
파일이 아직 포함되지 않은 경우 가시성을 위해 솔루션에 파일을 추가합니다.
실제 diff 예제를 사용하여 지침을 강화합니다.
- 원하는 코드를 한 프로젝트에서 수동으로 변경합니다. 예를 들어 "
Newtonsoft.Json패키지를 제거하고, 지시문을 업데이트한 후JsonConvert코드를JsonSerializer로 교체합니다." - 채팅에서 명령 파일이 열려 있는 상태에서 다음
Check my git changes and add diffs as examples to my instruction file을 입력합니다. - Copilot이 git diff를 사용하고 Markdown 파일에 코드 블록이나 구조화된 예제를 추가했는지 확인합니다.
- 원하는 코드를 한 프로젝트에서 수동으로 변경합니다. 예를 들어 "
작성 팁
다음 지침에 따라 Copilot 안정적으로 해석할 수 있는 명확하고 효과적인 사용자 지정 업그레이드 지침을 작성합니다.
- 명확한 조건부 구문을 사용합니다.
If code references X, then do Y. - 파일당 하나의 변환을 유지합니다. 여러 파일을 순서대로 실행해야 하는 경우 필수 구성 요소를 사용합니다.
- 변환 정확도를 향상시키기 위해 diff 또는 이전/후 코드 조각과 같은 구체적인 예제를 하나 이상 제공합니다.
- "개선" 또는 "수정"처럼 모호한 동사를 사용하지 않습니다. "replace", "remove" 및 "update"와 같은 명시적 작업을 사용합니다.
사용자 지정 업그레이드 명령 테스트(일회성 실행)
업그레이드하는 동안 명령을 실행하기 전에 격리된 상태로 유효성을 검사합니다. 격리된 테스트를 사용하면 검색을 구체화하고 코드 변경 내용을 확인할 수 있습니다.
솔루션 탐색기 창에서 솔루션>Modernize를 마우스 오른쪽 버튼으로 클릭합니다.
메모
이러한 단계는 Visual Studio 적용합니다. Visual Studio Code 및 기타 환경에서는 Copilot 채팅 패널에서 직접
modernize-dotnet에이전트를 호출합니다.채팅에서 파일 이름과 비슷한 단어로 명령을 호출합니다. 예:
replace Newtonsoft with System.Text.Json.채팅 창에서 Copilot 명령 파일을 검색했는지 확인합니다.
> Getting instructions for 'replace Newtonsoft with System.Text.Json'. Perfect! I've retrieved the scenario instructions for upgrading from Newtonsoft.Json to System.Text.Json. Now I'll begin the analysis following the scenario-specific instructions.Copilot 지침을 찾지 못했다면 동일한 동사 및 명사 조합과 같은 파일 이름의 키워드를 사용하여 다시 시도합니다.
제안된 변경 내용(솔루션 차이, 보류 중인 커밋 또는 미리 보기 수정)을 검토하여 사용자 지정 업그레이드 명령이 예상대로 작동하는지 확인합니다.
유효성 검사 팁
테스트 실행에서 예상된 결과를 생성하지 않는 경우 다음 문제 해결 팁을 사용하여 명령 파일을 구체화합니다.
- Copilot 패키지를 바꾸는 대신 패키지 버전만 업데이트하는 경우 이전 패키지를 제거하거나 교체하라는 명령이 명시적으로 명시되어 있는지 확인합니다.
- 자연어 활성화가 일치할 수 있도록 일관된 이름을 사용합니다. 예를 들어 파일 이름을
replace_시작하고 "바꾸기 ..."로 채팅 요청을 시작합니다. - 테스트하는 동안 누락된 코드 패턴을 예제로 추가하여 적용 범위를 개선합니다.
업그레이드하는 동안 사용자 지정 지침 적용
기존 사용자 지정 업그레이드 지침을 업그레이드의 평가 단계에 통합하려면 다음 단계를 사용합니다.
솔루션 탐색기 창에서 솔루션>Modernize를 오른쪽 클릭합니다.
메모
이러한 단계는 Visual Studio 적용합니다. Visual Studio Code 및 기타 환경에서는 Copilot 채팅 패널에서 직접
modernize-dotnet에이전트를 호출합니다.채팅에서
Upgrade to a newer version of .NET선택합니다. 평가를 시작할 때까지 Copilot 질문에 답변합니다.채팅을 모니터링하여 Copilot 평가 중에 사용자 지정 명령 파일을 자동으로 검색하는지 확인합니다. Markdown 명령 파일을 열었다는 메시지를 찾습니다.
Copilot 사용자 지정 지침을 자동으로 적용하지 않는 경우 명시적으로 요청합니다. 파일 이름과 비슷한 단어를 사용합니다. 예:
use the custom instructions to replace Newtonsoft with System.Text.Json during the assessment.Copilot Markdown 파일을 검색했는지 확인할 때까지 기다립니다. 명령 파일에 대한 참조가 표시되지 않으면 파일의 키 동사(바꾸기, 업데이트, 제거) 및 패키지 이름을 사용하여 요청을 다시 실행합니다.
폴더
assessment.md에서 생성된.github/upgrades파일을 검토합니다. 평가에 사용자 지정 명령이 식별한 문제 및 변경 내용이 포함되어 있음을 확인합니다.예를 들어 Newtonsoft를 대체할 때 평가는 다음을 식별합니다.
- 패키지를 사용하는
Newtonsoft.Json프로젝트입니다. -
System.Text.Json에 대해 리팩터링할 코드 패턴 - 제거 또는 교체해야 할 종속성입니다.
- 패키지를 사용하는
필요한 경우 계속하기 전에 파일을 편집
assessment.md하여 컨텍스트를 추가하거나 식별된 문제를 조정합니다.평가에 사용자 지정 지침이 반영되면 Copilot 계획 단계로 계속 진행하도록 지시합니다.
Copilot 생성하는
plan.md파일을 검토합니다. 이 파일에는 평가에서 문제를 해결하기 위한 전략이 포함되어 있습니다.Copilot에게 계속 진행하라고 지시하여 실행 단계를 계속합니다. Copilot 변환을 적용할 때
tasks.md파일을 모니터링합니다.
더 나은 활성화를 위한 팁
사용자 지정 업그레이드 지침의 이름을 지정하고 호출하는 방법은 Copilot 자동으로 검색하는지 여부에 영향을 줍니다. 활성화 안정성을 향상하려면 다음 지침을 따르세요.
- 파일의 동사를 맞추십시오. 파일 이름이 사용되는
replace경우 해당 구문(아님upgrade또는fix)을 사용합니다. - 명확성과 재사용을 위해 파일당 하나의 변환을 유지합니다. 각 파일에 필수 구성 요소를 나열하여 여러 파일을 시퀀스합니다.
- 계획 또는 실행까지 기다리지 않고 평가 단계에서 최상의 결과를 위해 사용자 지정 지침을 요청합니다.
- "평가 개선"처럼 모호한 요청을 피합니다. 명시적: "평가 중에 replace_newtonsoft_with_system_text_json 지침을 적용합니다."
적용된 변경 내용의 유효성 검사
업그레이드가 완료된 후:
-
tasks.md파일을.github/upgrades검토하여 사용자 지정 지침과 관련된 작업의 상태를 확인합니다. - 실행 단계에서 만든 Git 커밋에서 사용자 지정 명령과 관련된 변경 내용을 확인합니다.
- 테스트를 실행하여 기능 동작이 올바른지 확인합니다.
- 선택 사항: 성공적인 변경에서 diff 예제를 캡처하고 명령 파일에 추가하여 향후 자동화를 강화합니다.
자원을 정리하세요
임시 명령 파일을 제거하거나 통합하여 향후 업그레이드에서 겹치는 변환을 방지합니다.
관련 콘텐츠
.NET