Visual Studio에서 GitHub Copilot Chat의 컨텍스트를 설정하여 더 나은 답변 얻기
Visual Studio에서 GitHub Copilot Chat을 사용하여 IDE를 종료하지 않고 구문, 프로그래밍 개념, 컨텍스트별 코드 도움말, 테스트 사례, 디버깅 등과 같은 코딩 정보 및 지원을 받을 수 있습니다. Copilot Chat은 Visual Studio에 통합되어 있으므로 IDE에 있는 내용에서 유용한 단서를 수집하여 작업 중인 작업을 이해할 수 있습니다.
Copilot은 응답을 생성하기 위해 프롬프트 외에도 현재 파일의 코드 및 채팅 기록 등의 추가 컨텍스트를 사용합니다. 이 문서에서는 더 나은 답변을 얻기 위해 Copilot Chat에 더 많은 정보를 제공하는 다음을 포함하는 방법을 알아봅니다.
- 슬래시 명령을 사용하여 코드 설명을 가져오는 것과 같은
/explain
일반적인 작업을 신속하게 지정할 수 있습니다. - 참조를 사용하여 채팅 범위를 특정 파일로 지정합니다.
- Copilot이 답변을 생성하기 위해 사용한 소스 를 검토합니다.
- 각 Copilot 채팅에 서로 다른 스레드 를 사용하여 각 채팅에서 서로 다른 컨텍스트를 기본 수 있습니다.
Visual Studio의 AI 지원 개발 및 Visual Studio에서 Copilot Chat을 사용하는 방법에 대해 자세히 알아봅니다.
필수 조건
Visual Studio에서 GitHub Copilot Chat 사용을 시작하려면 다음이 필요합니다.
- Visual Studio 2022 버전 17.8 이후 버전
- 개인용 GitHub Copilot 또는 비즈니스용 GitHub Copilot에 대한 활성 구독이 있어야 합니다.
- Visual Studio의 GitHub Copilot
- Visual Studio에서 GitHub Copilot 채팅 사용
- 활성 GitHub Copilot 구독을 보유한 GitHub 계정을 사용하여 Visual Studio에 로그인
GitHub Copilot Chat 지원은 GitHub에서 제공되며 https://support.github.com에서 이용할 수 있습니다.
일반적인 작업에는 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 참조합니다.
메서드, 클래스 또는 함수 참조
이제 GitHub Copilot Chat에서 특정 메서드, 클래스 또는 함수를 참조하기 위해 Visual Studio 2022 버전 17.11을 사용할 수 있습니다.
메서드, 클래스 또는 함수 이름의 시작 부분에 # 기호를 추가하기만 하면, GitHub Copilot Chat에서 메서드, 클래스 또는 함수를 쉽게 참조할 수 있습니다. 예를 들어 BasketAddItem이라는 메서드가 있는 경우 채팅에서 #BasketAddItem로 참조합니다.
전체 솔루션 참조
@workspace를 사용하여 컨텍스트용 IDE에서 활성 솔루션을 참조합니다. 컨텍스트에 @workspace 사용 시, 현재 열려 있고 IDE 내에서 작업 중인 파일, 프로젝트 및 구성에 대한 정보를 Copilot Chat이 활용합니다. 이를 통해 Copilot Chat은 보다 관련성이 높고 상황에 맞는 제안 및 답변을 제공할 수 있습니다.
Visual Studio 2022 버전 17.11에서 GitHub Copilot Enterprise 구독자는 이제 채팅에서 @github
를 사용하여 전체 리포지토리의 컨텍스트를 포함하고 웹을 검색할 수 있습니다(관리자가 검색을 사용하는 경우). @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와의 채팅을 스레드로 격리
Copilot Chat을 광범위하게 사용하여 코딩할 때 질문을 하는 경우 대화를 주제별로 유지하는 방식으로 구성할 수 있습니다. Visual Studio용 Copilot Chat은 이제 새 대화(스레드)를 시작하여 현재 작업에 집중할 수 있도록 하고 컨텍스트를 명확하게 유지하여 답변이 관련 기록을 기반으로 하는 쉬운 방법을 제공합니다.
새 채팅 스레드
채팅 창에서 새 스레드 만들기를 선택하여 새 스레드 를 시작할 수 있습니다.
채팅 스레드 전환
여러 진행 중인 스레드 중에서 선택하여 질문에 적합한 기록 컨텍스트를 제공할 수 있습니다.
인라인 채팅을 채팅 창으로 승격
Visual Studio 2022 버전 17.11을 사용하면 이제 채팅 창으로 승격하여 인라인 채팅 기록을 유지할 수 있습니다. 채팅 창에서 계속하며 대화의 레코드와 컨텍스트를 유지하기 위해 채팅 창에서 계속...을 선택합니다.
모범 사례
Copilot Chat은 요청에 대한 컨텍스트를 가져오기 위해 채팅 기록을 사용합니다. 다음을 수행하여 Copilot에게 관련 기록만 제공합니다.
- 새 작업에 대한 새 대화를 시작하기 위해 스레드를 사용합니다.
- 더 이상 연관이 없거나 원하는 결과를 얻지 못한 요청은 삭제합니다.
채팅 대화를 열어 두며 계속 반복하고 제안된 솔루션을 개선하라는 메시지를 Copilot에게 표시합니다. 생성된 코드의 컨텍스트 및 현재 대화 기록이 Copilot에 모두 있습니다. Copilot은 추가 질문을 계속하면 요구 사항에 따라 응답을 더욱 구체화합니다. Github Copilot에 대한 프롬프트 엔지니어링을 참조하여 Copilot 결과를 개선하기 위한 효과적인 프롬프트에 대한 전략을 확인하세요.