프롬프트는 사용자가 GitHub Copilot에 하는 요청입니다. 예를 들어 질문을 하거나 작업을 설명하거나 Copilot가 완성할 코드 조각을 작성할 수 있습니다. Copilot는 프롬프트 외에도 현재 파일의 코드 및 대화 기록과 같은 컨텍스트를 사용하여 응답을 생성합니다.
여러 환경에서 Visual Studio와 상호 작용할 수 있습니다. 여기에는 JetBrains IDEs, Visual Studio Code, IDE(GitHub, GitHub Copilot CLI, GitHub Copilot app, Eclipse 및 Xcode), 그리고 Copilot 웹사이트가 포함됩니다.
GitHub Copilot app 또는 GitHub 웹 사이트에서 Copilot와 대화형으로 작업하는 대신, Copilot cloud agent—사용자를 대신해 작업을 수행하는 에이전트—를 시작할 수도 있습니다.
이 문서의 팁은 더 나은 응답을 생성하는 프롬프트를 작성하는 데 도움이 되며, Copilot 전반에 걸쳐 적용됩니다.
일반적으로 시작하고 구체적으로 진행
Copilot에 대한 프롬프트를 작성할 때는 먼저 Copilot에 목표 또는 시나리오에 대한 개괄적인 설명을 제공합니다. 그런 다음 특정 요구 사항을 나열합니다. 가장 중요한 요구 사항을 먼저 두세요. Copilot 는 프롬프트의 시작과 끝에 있는 지침에 추가 가중치를 부여합니다.
다음은 그 예입니다.
Write a JavaScript function that tells me if a number is prime The function should take an integer and return true if the integer is prime The function should error if the input is not a positive integer
Write a JavaScript function that tells me if a number is prime The function should take an integer and return true if the integer is prime The function should error if the input is not a positive integer
Write a JavaScript function that tells me if a number is prime
The function should take an integer and return true if the integer is prime
The function should error if the input is not a positive integer
예제 제공
예제를 Copilot 사용하여 원하는 내용을 이해할 수 있습니다. 예제 입력 데이터, 예제 출력, 예제 구현을 제공할 수 있습니다.
다음은 그 예입니다.
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:
* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024
Example:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Returns: ["11/14/2023", "12-1-23"]
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:
* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024
Example:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Returns: ["11/14/2023", "12-1-23"]
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:
* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024
Example:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Returns: ["11/14/2023", "12-1-23"]
단위 테스트는 예제로도 사용할 수 있습니다. 함수를 작성하기 전에 Copilot를 사용해 함수에 대한 단위 테스트를 작성합니다. 그런 다음 Copilot에게 해당 단위 테스트에 설명된 함수를 작성하도록 요청합니다.
복잡한 작업을 더 간단한 작업으로 나누기
복잡하거나 큰 작업을 완료하려면 Copilot 작업을 간단하고 작은 여러 작업으로 분할합니다.
예를 들어 단어 검색 퍼즐을 생성하도록 요청하는 Copilot 대신 프로세스를 더 작은 작업으로 세분화하고 하나씩 수행하도록 요청 Copilot 합니다.
- 10x10 표의 문자를 생성하는 함수를 작성합니다.
- 유효한 단어 목록이 지정된 경우 문자 표의 모든 단어를 찾는 함수를 작성합니다.
- 이전 함수를 사용하여 10개 이상의 단어를 포함하는 10x10 표의 문자를 생성하는 함수를 작성합니다.
- 문자 표와 표에서 임의의 단어 10개를 인쇄하도록 이전 함수를 업데이트합니다.
모호성 방지
모호한 용어를 피하세요. 예를 들어, "this"가 현재 파일, 마지막 Copilot 응답 또는 특정 코드 블록을 가리킬 수 있는 경우에는 "this가 무엇을 하는가"라고 묻지 마세요. 대신 다음과 같이 구체적으로 설명합니다.
- Go에서
createUser함수는 어떤 기능을 하나요? - 마지막 응답의 코드는 무엇을 합니까?
모호성은 라이브러리에도 적용될 수 있습니다.
- 일반적이지 않은 라이브러리를 사용하는 경우 라이브러리가 수행하는 작업을 설명합니다.
- 특정 라이브러리를 사용하려면 파일 맨 위에 import 문을 설정하거나 사용할 라이브러리를 지정합니다.
규칙 및 요구 사항은 메타 지침이 아니라 직접 명시하세요. 예를 들어 "결과를 JSON으로 반환" 대신 "항상 JSON을 반환해야 합니다."을 작성합니다.
관련 컨텍스트 제공
Copilot 는 사용자의 프롬프트를 이해하기 위해 사용할 수 있는 컨텍스트를 사용합니다. 해당 컨텍스트를 제공하는 방법은 사용 중인 환경에 따라 달라집니다.
- IDE의 코드 완성: 관련 파일을 열고 관련이 없는 파일을 닫습니다. Copilot는 사용자의 요청을 이해하기 위해 열려 있는 파일을 사용합니다.
- Copilot IDE 또는 GitHub 웹 사이트에서: 참조하려는 Copilot 코드를 강조 표시하고 키워드를 사용하여 컨텍스트를 연결합니다. 예를 들어 프롬프트에
@를 입력하여 파일, 문제, 끌어오기 요청 또는 리포지토리와 같은 항목을 첨부합니다. 일부 IDE는 슬래시 명령(예:/fix및/tests), 변수 및 Copilot 경험을 향상시키기 위한 기타 옵션도 지원합니다. - GitHub Copilot CLI:
@path로 리포지토리 파일을 첨부하거나#number로 GitHub 이슈 또는 풀 리퀘스트를 참조합니다. 다시 사용하려는 리포지토리 컨텍스트의 경우AGENTS.md파일, 경로별 명령 파일 또는.github/copilot-instructions.md파일과 같은 사용자 지정 지침을 추가합니다. - Copilot cloud agent: 리포지토리 및 기본 분기를 선택하여 작업의 범위를 지정한 다음 목표, 수용 조건 및 관련 파일을 설명합니다. 시각적 컨텍스트가 중요한 경우 스크린샷 또는 목업을 첨부합니다. 기존 토론이 작업으로 전달되어야 하는 경우 채팅 세션에서 작업을 시작합니다. 그렇지 않으면 작업 프롬프트에 해당 배경을 포함합니다. 리포지토리, 경로별 또는 에이전트 명령 파일에 지속적인 지침을 유지합니다.
실험 및 반복
원하는 결과를 얻지 못하면 프롬프트를 반복하고 다시 시도합니다.
코딩할 때 제안을 가져오는 데 사용하는 Copilot 경우 제안을 완전히 삭제하고 다시 시작할 수 있습니다. 또는 제안을 유지하고 수정을 요청할 수 있습니다.
사용하는 Copilot Chat경우 다음 요청에서 이전 응답을 참조할 수 있습니다. 또는 이전 응답을 삭제하고 다시 시작할 수 있습니다.
관련 기록 유지
대화형 인터페이스(GitHub Copilot app, Copilot, GitHub Copilot CLI IDE 또는 GitHub에서, 그리고 Copilot cloud agent)는 대화 기록을 컨텍스트로 사용합니다. Copilot에 관련 기록만 제공하려면:
- 새 작업을 시작할 때 새 대화 또는 세션을 시작합니다.
- surface에서 지원되는 경우 더 이상 관련이 없는 차례를 제거하거나 롤백하세요. 예를 들어, GitHub Copilot CLI를 사용하면 새 세션을 시작하고, 세션을 삭제하고,
/undo또는/rewind로 이전 프롬프트로 되감을 수 있습니다. Copilot cloud agent에서는 새 작업을 시작하고 세션을 중지하거나 보관할 수 있지만 세션을 삭제하거나 개별 턴을 되감을 수는 없습니다.
Copilot의 출력 검토
AI 생성 코드 및 응답의 유효성을 동료의 작업을 검토하는 것과 동일한 방식으로 유효성을 검사하세요. 즉, 신뢰하기 전에 정확성을 평가, 테스트 및 확인하세요. 이는 모든 Copilot 표면에 적용됩니다. 자세한 내용은 AI 생성 코드 검토을(를) 참조하세요.
우수한 코딩 사례 따르기
코드베이스에서 제안 또는 설명을 요청할 Copilot 때 원하는 응답을 받지 못하는 경우 기존 코드가 모범 사례를 따르고 읽기 쉬운지 확인합니다. 다음은 그 예입니다.
- 일관된 코드 스타일 및 패턴을 사용합니다.
- 변수 및 함수에 설명이 포함된 이름을 사용합니다.
- 코드를 주석으로 작성하세요.
- 코드를 모듈식 범위 구성 요소로 구성합니다.
- 단위 테스트를 포함합니다.
팁
코드가 모범 사례를 따르도록 돕는 데 사용합니다 Copilot . 예를 들어 주석을 추가하거나 큰 함수를 더 작은 함수로 나누도록 요청 Copilot 합니다.