GitHub Copilot 코드 완성 제안을 사용하여 코드 생성
GitHub Copilot 다양한 프로그래밍 언어 및 다양한 프레임워크에 대한 코드 완성 제안을 제공할 수 있지만 Python, JavaScript, TypeScript, Ruby, Go, C# 및 C++에 특히 적합합니다. 코드 줄 완료는 작성 중인 코드의 컨텍스트를 기반으로 생성됩니다. GitHub Copilot 제공한 제안을 수락, 거부 또는 부분적으로 수락할 수 있습니다.
GitHub Copilot 코드 줄 완성을 생성하는 두 가지 방법을 제공합니다.
주석에서: 생성하려는 코드를 설명하는 주석을 작성하여 코드 줄 완료를 생성할 수 있습니다. GitHub Copilot 작성한 주석에 따라 코드 완성 제안을 제공합니다.
코드에서: 코드 줄을 시작하거나 완료된 코드 줄 다음에 Enter 키를 눌러 코드 줄 완료를 생성할 수 있습니다. GitHub Copilot 작성하는 코드에 따라 코드 완성 제안을 제공합니다.
GitHub Copilot 사용하여 주석에서 코드 줄 완성 생성
GitHub Copilot 앱의 주석 및 기존 컨텍스트에 따라 코드 완성 제안을 생성합니다.
주석을 사용하여 코드 조각, 메서드, 데이터 구조 및 기타 코드 요소를 설명할 수 있습니다.
다음 코드 조각이 있다고 가정합니다.
namespace ReportGenerator;
class QuarterlyIncomeReport
{
static void Main(string[] args)
{
// create a new instance of the class
QuarterlyIncomeReport report = new QuarterlyIncomeReport();
// call the GenerateSalesData method
// call the QuarterlySalesReport method
}
public void QuarterlySalesReport()
{
Console.WriteLine("Quarterly Sales Report");
}
}
예를 들어 다음 주석을 사용하여 데이터 구조를 만들 수 있습니다.
/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */
GitHub Copilot 편집기에서 열려 있는 코드 파일 및 코드 주석에 따라 하나 이상의 코드 완성 제안을 생성합니다.
데이터 구조의 필드를 선언하는 데 사용되는 데이터 형식을 확인합니다. GitHub Copilot 기존 코드 및 코드 주석에 따라 데이터 형식 및 변수 이름을 선택합니다. GitHub Copilot 애플리케이션에서 변수를 사용하는 방법을 확인하고 그에 따라 데이터 형식을 정의합니다.
GitHub Copilot 둘 이상의 제안을 생성하는 경우 > 단추 왼쪽에 있는 왼쪽 또는 오른쪽 화살표(< 또는 )를 선택하여 제안을 순환할 수 있습니다. 이를 통해 요구 사항에 가장 적합한 제안을 검토하고 선택할 수 있습니다.
원하는 것과 정확히 일치하지 않는 코드 완성 제안을 수락해도 됩니다. 그러나 제안을 "수정"하는 데 필요한 변경 내용은 명확해야 합니다. 이 경우 일부 데이터 형식은 원하는 형식이 아니지만 제안된 자동 완성을 수락한 후 조정할 수 있습니다.
제안된 옵션이 필요한 옵션과 유사하지 않은 경우 두 가지를 시도해 볼 수 있습니다. 다른 제안 목록이 포함된 새 편집기 탭을 열려면 Ctrl + Enter 키를 누릅니다. 이 바로 가기 키 조합은 최대 10개의 추가 제안이 포함된 새 탭을 엽니다. 각 제안 뒤에는 제안을 수락하는 데 사용할 수 있는 단추가 잇습니다. 제안을 수락하면 탭이 자동으로 닫힙니다. 다른 옵션은 Esc 키를 눌러 제안을 해제하고 다시 시도하는 것입니다. 코드 주석을 조정하여 GitHub Copilot 사용할 더 많은 컨텍스트를 제공할 수 있습니다.
비고
GitHub Copilot 때때로 단계적으로 제안을 제안할 수 있습니다. 이런 일이 발생하면 Enter 키를 눌러 Tab 키를 누른 후 제안의 추가 단계를 볼 수 있습니다.
제안된 데이터 구조를 수락하려면 Tab 키를 누르거나 수락을 선택합니다.
필드 데이터 형식을 수정하려면 다음과 같이 코드를 업데이트합니다.
public struct SalesData
{
public DateOnly dateSold;
public string departmentName;
public int productID;
public int quantitySold;
public double unitPrice;
}
코드 완성 제안을 빠르게 조정하면 원하는 코드를 빌드하는 데 도움이 됩니다. 코드베이스의 상당 부분을 계속 개발해야 하는 경우 개발 프로세스 초기에 수정하는 것이 특히 중요합니다. 후속 코드 완성은 이미 작성한 코드를 기반으로 하므로 코드가 가능한 한 정확한지 확인하는 것이 중요합니다.
다음 편집 제안을 사용하여 코드 변경 내용 수행
고스트 텍스트 자동 완성은 코드를 작성할 때 빈 부분을 채우는 데 탁월합니다. 그러나 대부분의 일상적인 코딩에는 변수 이름 바꾸기, 데이터 형식 업데이트 또는 논리 오류 수정과 같은 기존 코드 편집이 포함됩니다. GitHub Copilot의 다음 편집 제안(NES)은 바로 이 시나리오를 위해 설계되었습니다.
편집할 때 NES는 변경 내용을 분석하고 다음 편집이 수행되어야 하는 위치와 편집해야 하는 항목을 모두 예측합니다( 다른 줄 또는 파일의 다른 부분에 있더라도). 이렇게 하면 업데이트가 필요한 모든 위치를 수동으로 검색할 필요 없이 흐름을 유지할 수 있습니다.
다음 편집 제안을 사용하려면 Visual Studio Code에서 github.copilot.nextEditSuggestions.enabled 설정을 true로 변경하세요.
사용하도록 설정되면 다음과 같은 방법으로 NES를 사용할 수 있습니다.
편집기에서 편집합니다. 예를 들어 변수 이름을 바꾸거나 메서드 서명을 변경합니다.
편집기 왼쪽에 표시되는 여백 화살표를 찾습니다. 화살표는 제안된 다음 편집 위치의 위치를 가리킵니다.
Tab 키를 눌러 제안된 편집 위치로 이동합니다.
Tab 키를 다시 눌러 제안을 수락하거나 이스케이프를 눌러 해제합니다.
NES가 특히 유용한 몇 가지 일반적인 시나리오는 다음과 같습니다.
- 전파 이름 바꾸기: 변수 이름을 한 번 바꾸면 NES에서 파일의 다른 모든 참조를 업데이트할 것을 제안합니다.
- 형식 변경: 필드의 데이터 형식을 변경하고 NES는 이를 사용하는 다운스트림 코드를 업데이트할 것을 제안합니다.
- 논리 수정: 키워드에서 반전된 조건 또는 오타를 수정하고 NES는 업데이트가 필요한 관련 코드 섹션에 플래그를 지정합니다.
- 리팩터링: 코드 블록을 복사하여 붙여넣은 후 NES는 주변 코드 스타일에 맞게 조정하는 방법을 제안합니다.
비고
다음 편집 제안에서는 현재 편집 내용에 따라 다음 변경 사항을 가장 가능성이 높은 것으로 예측합니다. 특정 시나리오에 대한 올바른 수정 사항이 다를 수 있으므로 수락하기 전에 항상 각 제안을 검토합니다.
요약
코드 줄 완성은 코드를 빠르고 효율적으로 생성하는 데 도움이 되는 GitHub Copilot 강력한 기능입니다. 주석을 사용하여 생성하려는 코드를 설명하면 최소한의 노력으로 데이터 구조, 메서드 및 기타 코드 요소를 만들 수 있습니다. 또한 GitHub Copilot 입력한 코드에 따라 코드 줄 완성을 생성하여 복잡한 애플리케이션을 쉽게 빌드할 수 있습니다.