다음을 통해 공유


Visual Studio에서 GitHub Copilot Chat의 컨텍스트를 설정하여 더 나은 답변 얻기

Visual Studio에서 GitHub Copilot Chat을 사용하여 IDE를 종료하지 않고 구문, 프로그래밍 개념, 컨텍스트별 코드 도움말, 테스트 사례, 디버깅 등과 같은 코딩 정보 및 지원을 받을 수 있습니다. Copilot Chat은 Visual Studio에 통합되어 있으므로 IDE에 있는 내용에서 유용한 단서를 수집하여 작업 중인 작업을 이해할 수 있습니다.

Copilot은 응답을 생성하기 위해 프롬프트 외에도 현재 파일의 코드 및 채팅 기록 등의 추가 컨텍스트를 사용합니다. 이 문서에서는 더 나은 답변을 얻기 위해 Copilot Chat에 더 많은 정보를 제공하는 다음을 포함하는 방법을 알아봅니다.

Visual Studio의 AI 지원 개발Visual Studio에서 Copilot Chat을 사용하는 방법에 대해 자세히 알아봅니다.

필수 조건

Visual Studio에서 GitHub Copilot Chat 사용을 시작하려면 다음이 필요합니다.

GitHub Copilot Chat 지원은 GitHub에서 제공되며 https://support.github.com에서 이용할 수 있습니다.

프롬프트 지침

Visual Studio 17.12 이상에서 안내된 채팅 환경은 프롬프트를 구체화하여 더 나은 답변을 위한 컨텍스트를 명확히 하는 데 도움이 됩니다. 이제 GitHub Copilot 채팅은 컨텍스트가 명확하지 않은 경우 명확한 질문을 안내합니다.

GitHub Copilot 채팅을 사용한 안내 채팅 환경의 스크린샷.

사용자 지정 지침 활성화

사용자 지정 지침 기능을 사용하면 미리 지정된 상황별 세부 정보를 채팅 질문에 자동으로 추가할 수 있습니다. 코필로트 채팅은 응답을 생성할 때 팀 작동 방식, 사용하는 도구 또는 프로젝트의 세부 사항과 같은 특정 컨텍스트에 맞게 조정된 지침을 사용합니다.

사용자 지정 지침을 구성하려면 다음을 수행합니다.

  1. 리포지토리의 루트에 사용자 지정 지침 파일을 생성/추가합니다. .github/copilot-instruction.md
  2. Tools>옵션>GitHub>Copilot를 통해 Visual Studio에서 기능을 사용하도록 설정>선택(미리 보기) .github/copilot-instructions.md 파일에서 사용자 지정 명령을 로드하고 요청에 추가하도록 설정합니다..

사용자 지정 지침은 채팅 보기 또는 인라인 채팅에 표시되지 않습니다. 그러나 Copilot에서 사용하는 경우.github/copilot-instructions.md 파일이 응답의 참조 목록에 나열됩니다.

일반적인 작업에는 Copilot Chat에서 슬래시 명령 사용

Copilot Chat의 슬래시 명령을 사용하면 일반적인 개발 작업에 대한 의도를 빠르게 설정할 수 있습니다. 특정 슬래시 명령을 사용하여 질문을 구성하면 긴 질문을 작성하지 않고도 더 나은 답변을 얻을 수 있습니다.

인라인 코드 지원을 사용하여 채팅 창에서 또는 수정하려는 코드에서 직접 인라인으로 슬래시 명령을 사용할 수 있습니다. 편집기에서 연 코드 파일을 수정하거나 추가하는 데 도움이 되는 명령은 인라인 코드 도우미 및 채팅 창에서 모두 작동하는 반면, 보다 일반적인 코딩 질문에 대한 명령은 채팅 창에서만 작동합니다.

Command 사용법 채팅 창 인라인 채팅
/doc 지정하거나 선택한 코드에 대한 주석을 추가합니다.
예:
- /doc DeleteBasketAsync method in BasketService.cs
- 원하는 코드를 선택하고 입력합니다. /doc
/설명 코드 설명을 가져옵니다.

예:
- /explain the AddItemToBasket method in BasketService.cs
- 원하는 코드를 선택하고 입력합니다. /explain
/수정 선택한 코드의 문제점에 대한 수정 사항을 제안합니다.
예:
- /fix the SetQuantities method in BasketService.cs
- 원하는 코드를 선택하고 입력합니다. /fix
생성 / 지정된 질문에 대답하는 코드를 생성합니다.
예: /generate code to add two numbers in Calculator.cs
/help Copilot Chat 사용에 대한 도움말을 참조하세요.
예: /help
/optimize 선택한 코드의 실행 시간을 분석하고 개선합니다.
예:
- /optimize the AddItemToBasket method in BasketService.cs
- 원하는 코드를 선택하고 입력합니다. /optimize
/테스트 선택한 코드에 대한 단위 테스트를 생성합니다.
예: 원하는 코드를 선택하고 입력 /tests using XUnit Framework

인라인 채팅 보기 및 채팅 창에서 슬래시 명령 스크린샷

참조: 특정 파일 및 전체 솔류션에 대한 Copilot 결과 범위

자연어로 코딩 관련 질문을 할 수 있으며 GitHub Copilot Chat은 Visual Studio에서 열려 있는 코드베이스의 컨텍스트에서 이에 답변합니다. 참조를 사용하면 질문에 대답할 때 Copilot에서 고려할 정보에 대해 더 구체적으로 확인할 수 있습니다.

코드베이스에서 특정 컨텍스트를 선택하면 긴 정보를 작성하거나 붙여넣지 않고도 더 나은 질문을 쉽게 작성할 수 있습니다. 컨텍스트를 지정하면 Copilot에서 보다 관련성 있는 답변을 제공할 수도 있습니다.

파일 참조

GitHub Copilot Chat에서 파일을 쉽게 참조하려면 파일 이름의 시작 부분에 # 기호를 추가하기만 하면 됩니다. 예를 들어 이름이 BasketService.cs 파일이 있는 경우 채팅에서 #BasketService.cs 참조합니다.

Copilot Chat에서 참조 스크린샷.

메서드, 클래스 또는 함수 참조

이제 GitHub Copilot Chat에서 특정 메서드, 클래스 또는 함수를 참조하기 위해 Visual Studio 2022 버전 17.11을 사용할 수 있습니다.

메서드, 클래스 또는 함수 이름의 시작 부분에 # 기호를 추가하기만 하면, GitHub Copilot Chat에서 메서드, 클래스 또는 함수를 쉽게 참조할 수 있습니다. 예를 들어 BasketAddItem이라는 메서드가 있는 경우 채팅에서 #BasketAddItem로 참조합니다.

이 스크린샷은 Visual Studio에서 GitHub Copilot 채팅의 메서드에 대한 참조를 보여 줍니다.

전체 솔루션 참조

@workspace를 사용하여 컨텍스트용 IDE에서 활성 솔루션을 참조합니다. 컨텍스트에 @workspace 사용 시, 현재 열려 있고 IDE 내에서 작업 중인 파일, 프로젝트 및 구성에 대한 정보를 Copilot Chat이 활용합니다. 이를 통해 Copilot Chat은 보다 관련성이 높고 상황에 맞는 제안 및 답변을 제공할 수 있습니다.

Copilot Chat에서 솔루션 컨텍스트를 참조하는 스크린샷

Visual Studio 2022 버전 17.11에서 GitHub Copilot Enterprise 구독자는 이제 채팅에서 @github를 사용하여 전체 리포지토리의 컨텍스트를 포함하고 웹을 검색할 수 있습니다(관리자가 검색을 사용하는 경우). @github를 사용할 때 Copilot이 때 질문에 대답하는 데 사용할 수 있는 GitHub 관련 기술 컬렉션에 대해 자세히 알아보려면 Copilot에 GitHub 기술 사용을 참조하세요.

Copilot 채팅에서 GitHub 기술을 사용하는 스크린샷.

사용 예

다음은 컨텍스트 제어에 대한 참조를 사용하는 몇 가지 예입니다.

예제 코필로트가 질문을 형성하는 데 사용하는 컨텍스트
#MyFile.cs 목적은 무엇입니까: 66-72? 파일의 정확한 섹션
#BasketService.cs 테스트는 어디에 있나요? BasketService.cs
/#BasketService.cs에서의 #AddItemToBasket 메서드 설명 BasketService.cs AddItemToBasket 메서드
@workspace에 delete basket 메서드가 있나요? IDE에서 열려 있는 현재 솔루션
#TestCalculator라고 이름이 지정된 테스트 메서드가 있습니다. 올바르게 실행되고 있는지 어떻게 확인하나요? TestCalculator 메서드
#BasketService 클래스와 #OrderService 클래스의 차이가 무엇인가요? BasketService 클래스 및 OrderService 클래스
내 @workspace에서 #AddItemToBasket의 위치가 어디인가요? IDE에서 열려 있는 현재 솔루션

Copilot Chat에서 사용하는 원본 검토

Copilot Chat은 모든 결과 후에 사용한 컨텍스트를 표시하므로 질문에 대답할 때 고려된 내용을 알 수 있습니다. Copilot Chat에 질문을 하고 채팅 창에서 응답을 받으면 응답 아래에 참조 드롭다운이 나타납니다. 참조 드롭다운 목록의 항목은 해당 응답을 생성하기 위해 Copilot Chat에서 참조하는 컨텍스트를 보여 줍니다. 이 정보는 더 나은 관련 답변을 얻기 위해 질문을 수정하는 데 도움이 될 수 있습니다.

Copilot Chat에서 사용된 참조 드롭다운의 스크린샷.

구성: Copilot와의 채팅을 스레드로 격리

Copilot Chat을 광범위하게 사용하여 코딩할 때 질문을 하는 경우 대화를 주제별로 유지하는 방식으로 구성할 수 있습니다. Visual Studio용 Copilot Chat은 이제 새 대화(스레드)를 시작하여 현재 작업에 집중할 수 있도록 하고 컨텍스트를 명확하게 유지하여 답변이 관련 기록을 기반으로 하는 쉬운 방법을 제공합니다.

새 채팅 스레드

채팅 창에서 새 스레드 만들기를 선택하여 새 스레드 를 시작할 수 있습니다.

Copilot Chat에서 새 스레드 만들기 아이콘의 스크린샷

채팅 스레드 전환

여러 진행 중인 스레드 중에서 선택하여 질문에 적합한 기록 컨텍스트를 제공할 수 있습니다.

Copilot Chat에서 진행 중인 스레드를 전환하는 스크린샷.

인라인 채팅을 채팅 창으로 승격

Visual Studio 2022 버전 17.11을 사용하면 이제 채팅 창으로 승격하여 인라인 채팅 기록을 유지할 수 있습니다. 채팅 창에서 계속하며 대화의 레코드와 컨텍스트를 유지하기 위해 채팅 창에서 계속...을 선택합니다.

이 스크린샷은 인라인 채팅에서 진행 중인 스레드의 채팅 창 승격을 보여 줍니다.

모범 사례

Copilot Chat은 요청에 대한 컨텍스트를 가져오기 위해 채팅 기록을 사용합니다. 다음을 수행하여 Copilot에게 관련 기록만 제공합니다.

  • 새 작업에 대한 새 대화를 시작하기 위해 스레드를 사용합니다.
  • 더 이상 연관이 없거나 원하는 결과를 얻지 못한 요청은 삭제합니다.

채팅 대화를 열어 두며 계속 반복하고 제안된 솔루션을 개선하라는 메시지를 Copilot에게 표시합니다. 생성된 코드의 컨텍스트 및 현재 대화 기록이 Copilot에 모두 있습니다. Copilot은 추가 질문을 계속하면 요구 사항에 따라 응답을 더욱 구체화합니다. Github Copilot에 대한 프롬프트 엔지니어링을 참조하여 Copilot 결과를 개선하기 위한 효과적인 프롬프트에 대한 전략을 확인하세요.

다음 단계