Skip to main content

GitHub Copilot의 프롬프트 엔지니어링

다음 전략에 따라 Copilot 결과를 개선합니다.

프롬프트는 GitHub Copilot에 대한 요청입니다. 예를 들어 Copilot Chat에 묻는 질문 또는 Copilot에 완료하도록 요청하는 코드 조각이 있습니다. Copilot은(는) 프롬프트 외에도 현재 파일의 코드 및 채팅 기록과 같은 추가 컨텍스트를 사용하여 응답을 생성합니다.

이 문서의 팁에 따라 Copilot에서 더 나은 응답을 생성하는 프롬프트를 작성하세요.

일반적으로 시작하고 구체적으로 진행

Copilot에 대한 프롬프트를 작성할 때 먼저 Copilot에 목표 또는 시나리오에 대한 광범위한 설명을 제공합니다. 그런 다음 특정 요구 사항을 나열합니다.

예시:

숫자가 소수인지를 알려주는 함수를 작성합니다.

정수가 소수인 경우 함수는 정수를 사용하고 true를 반환해야 합니다.

입력이 양의 정수가 아닌 경우 함수에서 오류가 발생합니다.

예제 제공

예제를 사용하여 원하는 내용을 Copilot에서 이해하도록 돕습니다. 예제 입력 데이터, 예제 출력, 예제 구현을 제공할 수 있습니다.

예시:

문자열의 모든 날짜를 찾아 배열에 반환하는 함수를 작성합니다. 날짜는 다음과 같이 서식을 지정할 수 있습니다.

  • 05/02/24
  • 05/02/2024
  • 5/2/24
  • 5/2/2024
  • 05-02-24
  • 05-02-2024
  • 5-2-24
  • 5-2-2024

예시:

findDates("나는 11/14/2023에 치과 예약을 하고 12-1-23에 클럽을 예약합니다")

반환: ["11/14/2023", "12-1-23"]

단위 테스트는 예제로도 사용할 수 있습니다. 함수를 작성하기 전에 Copilot을 사용하여 함수에 대한 단위 테스트를 작성할 수 있습니다. 그런 다음 Copilot에 해당 단위 테스트에서 설명하는 함수를 작성하도록 요청할 수 있습니다.

복잡한 작업을 더 간단한 작업으로 나누기

Copilot이 복잡하거나 큰 작업을 완료하게 하려면 작업을 간단하고 작은 규모의 여러 작업으로 분할합니다.

예를 들어 Copilot에 단어 검색 퍼즐을 생성하도록 요청하는 대신 프로세스를 더 작은 작업으로 분할하고 Copilot에 하나씩 수행하도록 요청합니다.

  • 10x10 표의 문자를 생성하는 함수를 작성합니다.
  • 유효한 단어 목록이 지정된 경우 문자 표의 모든 단어를 찾는 함수를 작성합니다.
  • 이전 함수를 사용하여 10개 이상의 단어를 포함하는 10x10 표의 문자를 생성하는 함수를 작성합니다.
  • 문자 표와 표에서 임의의 단어 10개를 인쇄하도록 이전 함수를 업데이트합니다.

모호성 방지

모호한 용어를 피하세요. 예를 들어 "this"가 현재 파일, 마지막 Copilot 응답 또는 특정 코드 블록일 수 있는 경우 "어떻게 합니까"라고 묻지 않습니다. 대신 다음과 같이 구체적으로 설명합니다.

  • Go에서 createUser 함수는 어떤 기능을 하나요?
  • 마지막 응답의 코드는 무엇을 합니까?

모호성은 라이브러리에도 적용될 수 있습니다.

  • 일반적이지 않은 라이브러리를 사용하는 경우 라이브러리가 수행하는 작업을 설명합니다.
  • 특정 라이브러리를 사용하려면 파일 맨 위에 import 문을 설정하거나 사용할 라이브러리를 지정합니다.

관련 코드 표시

코딩할 때 IDE에서 Copilot을 사용하여 제안을 가져오는 경우 관련 파일을 열고 관련 없는 파일을 닫습니다. Copilot은 열려 있는 파일을 사용하여 요청을 이해합니다.

IDE에서 Copilot Chat을 사용하는 경우 파일을 열거나 Copilot에서 참조할 코드를 강조 표시합니다. Copilot Chat에서 참조해야 하는 파일을 지정할 수도 있습니다. 예를 들어 VS Code에서 #file 변수 또는 @workspace 참가자를 사용합니다. IDE에서 파일을 참조하는 방법에 대한 지침은 "IDE에서 GitHub Copilot에 질문하기" 항목을 참조하세요.

실험 및 반복

원하는 결과를 얻지 못하면 프롬프트를 반복하고 다시 시도합니다.

코딩할 때 Copilot을 사용하여 제안을 가져오는 경우 제안을 완전히 삭제하고 다시 시작할 수 있습니다. 또는 제안을 유지하고 수정을 요청할 수 있습니다.

Copilot Chat을 사용하는 경우 다음 요청에서 이전 응답을 참조할 수 있습니다. 또는 이전 응답을 삭제하고 다시 시작할 수 있습니다.

관련 기록 유지

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

  • 스레드를 사용하여 새 작업을 위한 새 대화 시작
  • 더 이상 관련이 없거나 원하는 결과를 제공하지 않는 요청 삭제

우수한 코딩 사례 따르기

Copilot에 코드베이스의 제안 또는 설명을 요청할 때 원하는 응답을 받지 못하는 경우 기존 코드가 모범 사례를 따르고 읽기 쉬운지 확인합니다. 예시:

  • 일관된 코드 스타일 및 패턴 사용
  • 변수 및 함수에 설명이 포함된 이름 사용
  • 코드 주석 달기
  • 코드를 모듈식 범위 구성 요소로 구성
  • 단위 테스트 포함

Tip

Copilot을 사용하여 코드가 모범 사례를 따르도록 돕습니다. 예를 들어 주석을 추가하거나 큰 함수를 더 작은 함수로 나누도록 Copilot에 요청합니다.

마찬가지로 지식 기반과 함께 Copilot을 사용할 때 원하는 응답을 받지 못하는 경우 지식 기반 파일에 다음 모범 사례를 적용합니다.

  • 파일을 논리적 계층 구조로 구성
  • 명확하고 간결한 언어 사용
  • 관련된 경우 예제 및 사용 사례 포함
  • 관련 파일 간의 상호 참조

추가 참고 자료