암시적 컨텍스트, 참조, 채팅 기록 및 컨텍스트 창 도구를 결합하여 더 나은 답변을 얻을 수 있도록 GitHub Copilot Chat에서 채팅 컨텍스트를 관리하세요.
이 문서에서는 Copilot 채팅에 더 많은 정보를 제공하여 더 나은 답변을 얻는 방법을 알아봅니다.
- 암시적 컨텍스트에 대한 이해는 코필로트가 내부적으로 어떻게 활용하는지를 알게 해줍니다.
- 참조를 사용하여 채팅 범위를 특정 파일, 변경 및 커밋으로 범위 지정
- 프롬프트에 이미지를 첨부하여 추가 컨텍스트를 제공하고 아이디어를 더 잘 보여 줍니다.
- 코필로트가 사용하는 원본 을 검토하여 답변을 생성합니다.
- 각 코필로트 채팅에 대해 서로 다른 스레드 를 사용하여 채팅 기록 및 각 채팅 컨텍스트를 유지 관리합니다.
- 컨텍스트 창 사용량 모니터링
- 공간을 확보할 수 있도록 대화 기록 요약(압축)
필수 조건
Visual Studio에서 GitHub Copilot 채팅 사용을 시작하려면 다음이 필요합니다.
- Visual Studio 2022 버전 17.10 이상
-
GitHub 계정을 사용하여 Copilot 액세스 권한으로 Visual Studio에 로그인하세요
** 무료로 GitHub Copilot에 등록할 수 있습니다.
암시적 컨텍스트
Visual Studio는 현재 활동에 따라 채팅 프롬프트에 컨텍스트를 자동으로 제공합니다.
다음 정보는 채팅 컨텍스트에 암시적으로 포함됩니다.
- 현재 편집기에서 선택한 텍스트입니다.
- 편집기에서 활성 상태인 현재 파일입니다.
프롬프트에 따라 Copilot는 활성 파일의 내용을 읽습니다. 채팅 컨텍스트에 다른 파일의 내용을 명시적으로 포함하려면 채팅 보기의 단추를 사용하여 + 제안된 파일을 선택하여 첨부 파일을 추가합니다.
참조: Copilot 범위 결과
자연어로 코딩 관련 질문을 할 수 있으며 GitHub Copilot Chat은 Visual Studio에서 열려 있는 코드베이스의 컨텍스트에서 이에 답변합니다. 참조를 사용하면 질문에 대답할 때 Copilot에서 고려할 정보에 대해 더 구체적으로 확인할 수 있습니다.
코드베이스에서 특정 컨텍스트를 선택하면 긴 정보를 작성하거나 붙여넣지 않고도 더 나은 질문을 쉽게 작성할 수 있습니다. 컨텍스트를 지정하면 Copilot에서 보다 관련성 있는 답변을 제공할 수도 있습니다.
파일 참조
GitHub Copilot 채팅에서 파일을 쉽게 참조하려면 파일 이름의 시작 부분에 기호를 추가 # 하기만 하면됩니다. 예를 들어 이름이 BasketService.cs 파일이 있는 경우 채팅에서 #BasketService.cs 참조합니다.
메서드, 클래스 또는 함수 참조
Visual Studio 2022 버전 17.11을 사용하면 이제 GitHub Copilot 채팅에서 특정 메서드, 클래스 또는 함수를 참조할 수 있습니다.
GitHub Copilot Chat에서 메서드, 클래스 또는 함수를 쉽게 참조하려면 메서드, 클래스 또는 함수 이름의 시작 부분에 기호를 추가 # 하기만 하면됩니다. 예를 들어, 메서드 이름이 BasketAddItem인 경우 채팅에서 #BasketAddItem로 참조하십시오.
전체 솔루션 참조
@workspace 사용하여 컨텍스트에 대한 IDE에서 활성 솔루션을 참조합니다. 컨텍스트에 @workspace 사용하는 경우 Copilot Chat은 현재 열려 있고 IDE 내에서 작업 중인 파일, 프로젝트 및 구성에 대한 정보를 활용합니다. 이를 통해 코필로트 채팅은 보다 관련성이 높고 상황에 맞는 제안 및 답변을 제공할 수 있습니다.
Visual Studio 2022 버전 17.11에서 GitHub Copilot Enterprise 구독자는 이제 @github 채팅에서 전체 리포지토리의 컨텍스트를 포함하고 웹을 검색할 수 있습니다(관리자가 검색을 사용하는 경우). Copilot에서 사용할 @github때 질문에 대답하는 데 사용할 수 있는 GitHub 관련 기술 컬렉션에 대해 자세히 알아보려면 Copilot용 GitHub 기술 사용을 참조하세요.
Git 기록에서 커밋 참조
커밋을 검토할 때 변경 사항을 이해하거나, 잠재적 문제를 식별하거나, 유사한 편집 초안을 작성하는 데 Copilot의 도움을 받고 싶다면 커밋 컨텍스트를 GitHub Copilot Chat에 직접 첨부할 수 있습니다.
커밋 ID를 복사하여 채팅에 붙여넣는 대신 채팅 에 추가를 사용하여 IDE에서 선택한 커밋 컨텍스트를 연결합니다.
다음 화면 중 하나에서 커밋에 채팅에 추가 를 사용합니다.
- Git 기록 (Git>브랜치 기록 보기)
- 파일 기록(솔루션 탐색기 파일을 마우스 오른쪽 단추로 클릭한 다음 Git> 기록 보기)
- 주석 달기(비난) (편집기에서 마우스 오른쪽 단추를 클릭한 다음 Git>주석 달기(비난))
커밋을 여러 개 선택하여 한 번에 채팅에 여러 커밋을 연결할 수 있습니다.
커밋 컨텍스트를 연결한 후 다음과 같은 프롬프트를 시도합니다.
- 이 변경 내용에 대해 설명합니다.
- 문제가 발생하나요?
- 이 다른 파일에 대해 비슷한 변경 내용을 작성합니다.
변경 내용 참조
Visual Studio 2022 버전 17.14 이상을 사용하면 Copilot Chat Git 참조를 사용할 수 있습니다.
#changes를 사용하여 Git Changes 창의 커밋되지 않은 변경 내용을 참조할 수 있습니다. 이 참조는 Copilot Chat 수행한 작업을 요약하거나 보류 중인 편집의 영향을 설명하거나 커밋하기 전에 다음 단계를 제안하려는 경우에 유용합니다.
예를 들어 다음과 같은 질문을 할 수 있습니다.
- 요약합니다
#changes. - 지금까지
#changes에서 무엇을 했나요? -
#changes에 대한 단위 테스트를 제안하세요.
Tools>Options 대화 상자를 열고 GitHub>Copilot>원본 제어 통합을 확장한 다음 Git 미리 보기 기능 사용을 선택한 후 OK를 선택합니다.
커밋 참조하기
#commit: 사용하여 Copilot Chat 특정 커밋을 참조합니다.
#commit: 입력을 시작하면 Copilot 선택할 수 있는 최근 커밋 목록이 표시됩니다. 이전 커밋을 참조하려면 커밋 ID를 바로 다음으로 입력합니다 #commit:.
다음과 같은 작업에 커밋 참조를 사용할 수 있습니다.
- 설명합니다
#commit:. -
#commit:의 변경 사항을 반영한 단위 테스트를 작성하세요. - 에서 잠재적인 문제를 찾습니다.
#commit:
이 참조는 이전 변경 내용을 검토하거나, 커밋의 의도를 검사하거나, Copilot 요청하여 이전 작업에 대한 후속 조치를 취하려는 경우에 유용합니다.
이미지 참조
Visual Studio 17.14 이상에서 Copilot Chat에 대한 비전 통합을 사용하면 채팅 프롬프트에 이미지를 첨부 하여 코필로트에게 향상된 응답을 위한 추가 컨텍스트를 제공할 수 있습니다. 슬래시 명령과 같은 범위 및 기타 컨텍스트 기능과 함께 이미지를 사용하여 맞춤형 응답을 생성합니다.
다음 예제에서 Copilot는 연결된 이미지를 해석하여 계획을 생성하고 코드를 제안하여 처음부터 다채로운 브레이크아웃 게임을 만듭니다.
참조 출력 창
이제 출력 창을 채팅의 컨텍스트로 사용하여 질문을 하고 출력 로그에 대한 도움을 받을 수 있습니다. 지원되는 출력 창에는 빌드, 디버그, 테스트, 소스 제어, 패키지 관리자 또는 기타 활성 출력 창이 포함됩니다.
다음 방법 중 하나로 채팅에서 출력 로그를 참조합니다.
- #output 사용하여 채팅에서 직접 참조합니다.
- ➕ 채팅 입력에서 아이콘을 선택하고 컨텍스트로 추가
Output logs합니다. - 예를 들어 내 출력 로그를 확인하고 이 오류를 해결하는 데 도움이 되도록 Copilot에 직접 문의하세요.
- 출력 창을 마우스 오른쪽 단추로 클릭하고 부조종사로 설명을 선택하여 연결합니다.
참조 URL
프롬프트 상자에 URL을 붙여넣으면 Copilot의 학습 데이터가 토픽을 다루지 않거나 특정 리소스를 참조하려는 경우 웹에서 정보를 가져와 공백을 채웁니다.
예를 들어, GitHub의 모범 사례를 기반으로 readme.md 파일 작성을 Copilot에 요청할 수 있습니다.
Copilot는 사용자가 제공하는 공용 URL에서만 정적 HTML 콘텐츠를 참조할 수 있으며 해당 페이지의 다른 링크, 인증 뒤에 있는 페이지 또는 동적 페이지의 콘텐츠에 액세스할 수 없습니다.
사용 예제
다음은 컨텍스트 제어에 대한 참조를 사용하는 몇 가지 예입니다.
| 예시 | 코필로트가 질문을 형성하는 데 사용하는 컨텍스트 |
|---|---|
| #MyFile.cs 목적은 무엇입니까: 66-72? | 파일의 정확한 섹션 |
| #BasketService.cs 테스트는 어디에 있나요? | BasketService.cs |
| #BasketService.cs의 #AddItemToBasket에 대해 설명하십시오. | AddItemToBasket 메서드, BasketService.cs |
| 이 항목에 delete basket 메서드가 있나요? @workspace | IDE에서 열려 있는 현재 솔루션 |
| #TestCalculator이라는 테스트 메서드가 있습니다. 올바르게 실행되고 있는지 어떻게 확인하나요? | TestCalculator 메서드 |
| #BasketService 클래스와 #OrderService 간의 차이점을 설명할 수 있나요? | BasketService 클래스 및 OrderService 클래스 |
| 내 @workspace에 #AddItemToBasket이 어디에 있나요? | IDE에서 열려 있는 현재 솔루션 |
| 커밋하기 전에 #changes를 요약해 줘 | Git 변경 내용 창에서 커밋되지 않은 변경 내용 |
| #commit:abc1234에서 잠재적 문제 찾기 | 지정된 커밋 |
| 이 이미지와 유사하도록 App.tsx에서 내 UI 업데이트 | 업로드된 이미지 |
코필로트 채팅에서 사용하는 원본 검토
부조종사 채팅은 모든 결과 후에 사용한 컨텍스트를 표시하므로 질문에 대답할 때 고려된 내용을 알 수 있습니다. 코필로트 채팅에 질문을 하고 채팅 창에서 응답을 받으면 응답 아래에 참조 드롭다운이 나타납니다. 참조 드롭다운 목록의 항목은 해당 응답을 생성하기 위해 코필로트 채팅에서 참조하는 컨텍스트를 보여 줍니다. 이 정보는 더 나은 관련 답변을 얻기 위해 질문을 수정하는 데 도움이 될 수 있습니다.
구성: 스레드를 사용하여 채팅 기록 컨텍스트 관리
채팅 세션에서 여러 채팅 프롬프트를 반복하고 보내면 Copilot는 채팅 프롬프트 및 응답 기록을 현재 채팅 프롬프트의 컨텍스트로 사용합니다. 즉, 컨텍스트를 반복하지 않고도 후속 질문을 하거나 이전 질문을 명확히 할 수 있습니다. 예를 들어 "어떻게 다른가요...", "이제 테스트 사례 추가", "자세히 설명" 등을 요청할 수 있습니다.
새 채팅 세션으로 다시 시작하고 현재 컨텍스트를 삭제하려면 채팅 보기에서 새 스레드 를 시작합니다. 이는 다른 토픽으로 이동하고 이전 컨텍스트와 기록을 방지하려는 경우에 유용합니다. 스레드를 사용하여 현재 작업에 초점을 맞춘 대화를 유지하고 컨텍스트를 명확하게 유지하여 답변이 관련 기록을 기반으로 합니다.
새 채팅 스레드
채팅 창에서 새 스레드 만들기 또는 Ctrl+N 을 선택하여 새 스레드를 시작합니다.
채팅 스레드 전환
여러 진행 중인 스레드 중에서 선택하여 질문에 적합한 기록 컨텍스트를 제공할 수 있습니다. 이전 스레드에 대해 Ctrl+PgDown 을 사용하거나 채팅 창에서 다음 스레드에 Ctrl+PgUp 을 사용할 수 있습니다. Ctrl 키+Shift 키+T는 스레드 드롭다운을 확장합니다.
구성: 채팅 기록 패널을 사용하여 채팅 기록 관리
채팅 세션에서 여러 채팅 프롬프트를 반복하고 보내면 Copilot는 채팅 프롬프트 및 응답 기록을 현재 채팅 프롬프트의 컨텍스트로 사용합니다. 즉, 컨텍스트를 반복하지 않고도 후속 질문을 하거나 이전 질문을 명확히 할 수 있습니다. 예를 들어 "어떻게 다른가요...", "이제 테스트 사례 추가", "자세히 설명" 등을 요청할 수 있습니다.
새 채팅 세션으로 다시 시작하고 현재 컨텍스트를 삭제하려면 채팅 보기에서 새 스레드 를 시작합니다. 이는 다른 토픽으로 이동하고 이전 컨텍스트와 기록을 방지하려는 경우에 유용합니다. 채팅 기록 패널을 사용하여 대화가 작업에 집중되도록 하고 컨텍스트를 명확하게 유지하여 답변이 관련 기록을 기반으로 합니다.
새 채팅 스레드
채팅 창에서 새 스레드 만들기 또는 Ctrl+N 을 선택하여 새 스레드를 시작합니다.
채팅 스레드 전환
채팅 기록 패널을 사용하여 채팅 세션 간에 전환하고 질문에 적합한 기록 컨텍스트를 제공합니다.
각 채팅 기록 항목은 다음을 보여줍니다.
- 채팅 제목
- 최신 메시지 미리 보기
- 세션이 마지막으로 업데이트된 경우
패널에서 세션을 선택하여 해당 대화로 바로 이동합니다.
채팅 창으로 인라인 채팅 승격
Visual Studio 2022 버전 17.11을 사용하면 이제 채팅 창으로 승격하여 인라인 채팅 기록을 유지할 수 있습니다. 채팅 창에서 계속을 선택하여 대화의 레코드와 컨텍스트를 유지하고 채팅 창에서 계속합니다.
컨텍스트 창 사용량 모니터링 및 최적화
Copilot 채팅할 때는 대화 기록, 첨부된 파일 및 기타 상황별 입력이 포함된 컨텍스트 창을 사용합니다. 컨텍스트 창이 가득 차면 Copilot은 스레드 앞부분의 이전 세부 정보를 놓칠 수 있습니다.
컨텍스트 창 표시기를 사용하여 실시간으로 사용량을 추적합니다.
- Copilot Chat 창을 엽니다.
- 채팅 프롬프트 상자의 오른쪽 위 모서리에서 링 표시기를 찾습니다.
- 사용되는 컨텍스트의 정확한 백분율을 보려면 표시기를 선택합니다.
- 컨텍스트 사용량에 기여하는 항목(예: 대화 메시지 및 작업 영역 파일)의 분석을 검토합니다.
대화 기록 요약 및 압축
압축은 현재 스레드의 이전 부분에서 사용하는 컨텍스트의 양을 줄여 동일한 대화에서 작업을 계속할 수 있도록 합니다.
사용 가능한 컨텍스트가 부족한 경우 대화 요약 을 선택하여 스레드의 이전 부분을 압축하고 현재 대화에 머무르는 동안 공간을 확보합니다.
다음 방법 중 하나에서 압축을 사용합니다.
- 컨텍스트 창 표시기에서 대화 요약 을 선택하여 이전 메시지를 자동으로 압축합니다.
- 채팅에
/compact를 입력하여 언제든지 대화를 수동으로 압축할 수 있습니다.
압축 후 Copilot 전체 대본 대신 이전 턴의 요약을 유지합니다. 이렇게 하면 스레드의 전체 방향을 유지하면서 컨텍스트 창 공간을 확보할 수 있습니다.
다음과 같은 경우 압축을 사용합니다.
- 컨텍스트 사용량이 높으므로 중요한 최근 컨텍스트가 손실되는 것을 방지하려고 합니다.
- 스레드가 길어졌지만 여전히 동일한 채팅에서 계속하려고 합니다.
- 새로운 후속 질문을 하기 전에 포커스를 개선하려고 합니다.
모범 사례
코필로트 채팅은 채팅 기록을 사용하여 요청에 대한 컨텍스트를 가져옵니다. 코필로트에게 관련 기록만 제공하려면 다음을 수행합니다.
- 새 스레드를 사용하여 새 작업에 대한 새 대화를 시작합니다.
- 동일한 스레드를 유지하려면 컨텍스트 사용량이 높은 경우 요약 대화를 사용합니다.
- 더 이상 관련이 없거나 원하는 결과를 제공하지 않는 요청을 삭제합니다.
채팅 대화를 열어 두고 계속 반복하고 Copilot에게 제안된 솔루션을 개선하라는 메시지를 표시합니다. Copilot는 생성된 코드의 컨텍스트와 현재 대화 기록을 모두 가지고 있습니다. 추가 질문을 계속하면 Copilot는 요구 사항에 따라 응답을 더욱 구체화합니다. 코필로트 결과를 개선하기 위한 효과적인 프롬프트에 대한 전략은 GitHub Copilot에 대한 프롬프트 엔지니어링 을 참조하세요.
다음 단계
- Visual Studio 대한 GitHub Copilot 환경
- Visual Studio 위한 GitHub Copilot 채팅 환경
- Visual Studio에서 Git 커밋 만들기
- GitHub Copilot 신뢰 센터
- 제안, 피드백 및 문제 보내기
- GitHub Copilot 채팅 지원
- GitHub Copilot 사용 방법: 프롬프트, 팁 및 사용 사례