GitHub Copilot 인라인 채팅, 스마트 작업 및 빠른 채팅 검사

완료됨

GitHub Copilot 채팅은 채팅 보기 외에도 AI 쌍 프로그래머와 상호 작용하는 여러 가지 다른 방법을 제공합니다. 여기에는 인라인 채팅, 스마트 작업 및 빠른 채팅이 포함됩니다.

인라인 채팅

GitHub Copilot Chat의 주요 기능 중 하나는 코딩할 때 인라인으로 질문에 대답하는 것입니다. 이를 통해 개발 워크플로를 중단하지 않고 코드 편집기 내에서 직접 AI의 기능을 활용할 수 있습니다.

인라인 채팅 기능은 편집기에서 파일이 열려 있을 때만 액세스할 수 있습니다. 인라인 채팅 세션을 여는 방법은 여러 가지가 있습니다.

  • Copilot 채팅 메뉴에서 편집자 인라인 채팅을 선택합니다.
  • 바로 가기 키를 사용합니다. Ctrl+I.
  • 코드 편집기 내부를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 Copilot 를 선택한 다음, 인라인 채팅 편집기를 선택합니다.

Visual Studio Code의 Copilot 메뉴에서 인라인 채팅에 액세스하는 방법을 보여 주는 스크린샷

코드를 작성하거나 반복할 때 인라인 채팅 세션을 사용하여 Copilot에 질문을 할 수 있습니다.

인라인 채팅 세션을 열면 편집기에서 다음 인터페이스가 표시됩니다.

Visual Studio Code에서 핫 키를 사용하여 인라인 채팅에 액세스하는 방법을 보여 주는 스크린샷

다음 시나리오를 고려하세요.

  • 숫자 목록을 처리하는 C# 애플리케이션을 개발하고 있습니다. 데이터는 100개의 일괄 처리로 처리됩니다.
  • 아래 코드 조각을 사용하여 테스트에 사용할 수 있는 1에서 1000 사이의 100개의 임의 정수 목록을 만듭니다.
// create a list of 100 random number between 1 and 1000
List<int> numbers = new List<int>();
Random random = new Random();
for (int i = 0; i < 100; i++)
{
    numbers.Add(random.Next(1, 1000));
}

코드가 정상적으로 작동합니다. 그러나 요구 사항이 변경되면 어떻게 될까요? 목록에 중복된 숫자가 포함되지 않도록 해야 하는 경우 어떻게 해야 해나요?

GitHub Copilot 자동 완성을 사용하여 코드를 업데이트하려면 다음을 수행해야 합니다.

  1. 기존 코드를 삭제합니다.
  2. 업데이트된 요구 사항을 반영하는 새 주석을 만듭니다.
  3. GitHub Copilot을 사용하여 업데이트된 주석에서 새 코드 조각을 생성합니다.
  4. 제안을 검토하고 최상의 옵션을 선택합니다.

다행히 그것은 필요하지 않습니다. 더 나은 솔루션은 GitHub Copilot 채팅을 사용하여 필요한 코드 업데이트를 제안하는 것입니다.

인라인 채팅 세션을 사용하여 다음과 같이 코드 업데이트를 제안할 수 있습니다.

  1. 업데이트하려는 코드 조각을 강조 표시합니다.
  2. Ctrl + I을(를) 눌러 인라인 채팅을 엽니다.
  3. GitHub Copilot 채팅에 업데이트를 완료하는 방법을 요청합니다.
  4. 제안을 검토하고 최상의 옵션을 선택합니다.

이 경우 다음과 같이 질문할 수 있습니다. Update this code to ensure that numbers doesn't include any duplicates

제안된 코드 업데이트를 원하는 경우 수락을 선택하고 코딩을 계속할 수 있습니다.

Visual Studio Code의 인라인 채팅에서 제안된 업데이트를 보여 주는 스크린샷

제안된 업데이트가 마음에 들지 않으면 Copilot 채팅에 다시 실행... 아이콘을 선택하여 다른 제안을 생성하도록 요청할 수 있습니다. 다시 실행 아이콘은 프롬프트 텍스트 상자 아래에 표시되는 원형 화살표로 표시됩니다.

프롬프트를 다시 실행하고 필요한 결과를 얻지 못하는 경우 추가 컨텍스트를 사용하여 프롬프트를 업데이트해 보세요. Copilot 채팅은 프롬프트가 명확하고 간결하며 정확할 때 더 나은 제안을 생성합니다. 변경 내용 없이 인라인 채팅을 닫으려면 취소를 선택합니다.

스마트 작업

일부 작업은 매우 일반적이어서 자동화할 수 있습니다. GitHub Copilot Chat에는 프롬프트를 작성하지 않고도 특정 작업을 완료할 수 있는 스마트 작업이 포함되어 있습니다. 스마트 작업은 Visual Studio Code 편집기에서 직접 실행하여 일반적인 코딩 작업을 빠르고 쉽게 수행할 수 있는 미리 정의된 작업입니다.

다음과 같은 스마트 작업을 사용할 수 있습니다.

  • 설명: Explain 작업은 선택한 코드에 대한 자연어 설명을 생성합니다. 코드 조각의 목적과 기능을 이해하는 데 유용할 수 있습니다. Explain 작업은 익숙하지 않은 코드를 사용하거나 다른 사용자에게 코드를 설명해야 하는 경우에 특히 유용합니다.
  • 수정 사항: Fix 작업은 선택한 코드에 대한 수정 사항을 제안합니다. 코드에서 오류 또는 문제가 발생하고 이를 해결하는 방법에 대한 지침이 필요한 경우 이 방법이 유용할 수 있습니다. Copilot Chat은 문제를 해결할 수 있는 변수, 제어 구조 또는 함수 호출에 대한 변경 내용을 제안할 수 있습니다.
  • 검토 및 메모: Review and Comment 작업은 선택한 코드에 대한 코드 검토를 제공합니다. 이는 잠재적인 문제를 식별하고, 코드 품질을 개선하고, 모범 사례가 준수되도록 하는 데 유용할 수 있습니다. Review and Comment 작업은 코드의 버그, 성능 병목 현상 및 보안 취약성을 식별하는 데 도움이 될 수 있습니다.
  • 문서 생성: Generate Docs 작업은 선택한 코드에 대한 설명서를 만듭니다. 이는 코드베이스를 문서화하는 데 유용할 수 있으며, 특히 여러 기여자가 있는 프로젝트에서 작업하거나 코드를 다른 사용자와 공유해야 하는 경우에 유용합니다.
  • 테스트 생성: Generate Tests 작업은 선택한 코드에 대한 단위 테스트를 만듭니다. 이는 특히 복잡한 논리 또는 중요한 기능이 있는 프로젝트에서 작업하는 경우 코드의 정확성과 안정성을 보장하는 데 도움이 될 수 있습니다.

스마트 작업에 액세스하려면 편집기에서 코드 조각을 마우스 오른쪽 단추로 클릭하고 Copilot 상황에 맞는 메뉴에서 원하는 작업을 선택합니다.

Visual Studio Code에서 스마트 작업에 액세스하는 방법을 보여 주는 스크린샷

다시 한 번 소수 앱을 살펴보겠습니다.

이전 섹션에서 인라인 채팅은 numbers이 중복을 포함하지 않도록 다음 코드를 제안했습니다.

// create a list of 100 random numbers between 1 and 1000
List<int> numbers = new List<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

이 코드는 고유한 요소를 수집하는 것을 보장하지만 개선의 여지가 있을 수 있습니다.

이 항목 검토 스마트 작업을 사용하여 코드 선택 사항을 확인할 수 있습니다. 이 항목 검토 스마트 작업을 사용하려면:

  1. 검토가 필요한 코드 조각을 선택합니다. 이 경우에는 난수 목록을 생성하는 코드입니다.

  2. Copilot 바로 가기 메뉴에서 이 항목 검토를 선택합니다.

  3. 제안된 업데이트를 검토하고 수락을 선택하여 변경 내용을 적용합니다.

난수를 생성하는 코드 조각의 경우 이 항목 검토 스마트 작업은 다음을 제안합니다.

  • 채우기 중 여러 번 크기가 조정되는 것을 방지하기 위해 List<int> numbers의 용량으로 100를 초기화합니다.
  • 중복 항목을 확인할 때 더 빠른 조회를 위해 HashSet<int> 대신 List<int>를 사용합니다.

이 경우, 이 항목 검토 스마트 작업을 통해 성능을 개선하기 위해 HashSet<int> 대신 List<int>를 사용하게 됩니다.

// create a list of 100 random numbers between 1 and 1000
HashSet<int> numbers = new HashSet<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

int sum = addPrimeNumbersInNumericList(numbers);
Console.WriteLine(sum);

HashSet를 사용하면 고유한 요소의 컬렉션을 보장하는 데 효율적으로 작동하지만 업데이트로 인해 새로운 문제가 발생합니다. addPrimeNumbersInNumericList 메서드는 List<int>를 입력으로 예상하지만 업데이트된 코드는 HashSet<int>를 만듭니다. 이렇게 하면 다음과 같은 컴파일 오류가 발생합니다.

Visual Studio Code에서 컴파일 오류를 보여 주는 스크린샷.

다행히도 수정 사항 스마트 작업을 사용하여 오류를 수정할 수 있습니다. 수정 사항 스마트 작업을 사용하려면:

  1. 수정해야 하는 코드 조각을 마우스 오른쪽 단추로 클릭합니다. 이 경우 코드에 빨간색 밑줄이 표시됩니다.

  2. Copilot 바로 가기 메뉴에서 수정 사항을 선택합니다.

  3. 제안된 수정 사항을 검토하고 수락을 선택하여 변경 내용을 적용합니다.

Fix 스마트 작업은 오류를 수정하기 위한 하나 이상의 제안을 생성합니다. 이 경우 제안 중 하나는 ToList() 호출 내부에서 HashSet 메서드를 사용하여 ListaddPrimeNumbersInNumericList로 변환합니다. 결과 코드는 다음 코드 조각과 유사합니다.

// create a list of 100 random numbers between 1 and 1000
HashSet<int> numbers = new HashSet<int>();
Random random = new Random();
while (numbers.Count < 100)
{
    int randomNumber = random.Next(1, 1000);
    if (!numbers.Contains(randomNumber))
    {
        numbers.Add(randomNumber);
    }
}

int sum = addPrimeNumbersInNumericList(numbers.ToList());
Console.WriteLine(sum);

언제나처럼, Copilot 채팅에서 제공하는 제안을 검토합니다. 더 나은 솔루션이 있을 수 있습니다. 수락을 선택하여 제안된 수정 사항으로 코드를 업데이트할 수 있습니다.

빠른 채팅

GitHub Copilot Chat에서 채팅 상호 작용에 제공하는 세 번째 옵션은 빠른 채팅입니다.

AI와 대화형으로 빠르게 대화하려면 GitHub Copilot Chat의 빠른 채팅 기능을 사용할 수 있습니다. 이 기능은 문제를 해결하려고 하거나, 코드 조각을 이해하는 데 도움이 필요하거나, 아이디어를 브레인스토밍하려는 경우에 유용할 수 있습니다. 동료 개발자와 채팅하는 것처럼 느껴지도록 설계되어 공동 작업 문제 해결을 위한 훌륭한 도구입니다.

빠른 채팅 창을 열려면 Visual Studio Code 편집기에서 Ctrl+Shift+Alt+L을 누르거나 Copilot 채팅 메뉴에서 빠른 채팅을 열 수 있습니다.

Visual Studio Code에서 빠른 채팅에 액세스하는 방법을 보여 주는 스크린샷

요약

GitHub 코필로트 채팅은 인라인 채팅, 스마트 작업 및 빠른 채팅을 포함하여 AI 쌍 프로그래머와 상호 작용하는 여러 가지 방법을 제공합니다. 이러한 기능을 사용하면 질문을 하고, 코드 제안을 받고, 일반적인 코딩 작업을 빠르고 쉽게 수행할 수 있습니다.