GitHub Copilot 채팅 모드를 사용하여 코드 리팩터링
GitHub Copilot 코드베이스의 코드를 리팩터링하는 데 사용할 수 있습니다. 채팅 보기 에이전트를 사용하여 코드 리팩터링 작업을 분석, 계획 및 구현할 수 있습니다. 채팅 보기 에이전트는 채팅 대화를 관리하고 GitHub Copilot 기능에 액세스하기 위한 사용자 친화적인 인터페이스를 제공합니다. 채팅 보기에는 다음과 같은 기본 제공 에이전트가 포함됩니다.
- 질문: Ask를 사용하여 코드베이스 또는 기술 개념에 대해 질문합니다. Ask를 사용하여 코드를 설명하거나, 수정 또는 수정 사항을 제안하거나, 코드베이스와 관련된 정보를 제공할 수 있습니다.
- 계획: 플랜 에이전트를 사용하여 코드를 작성하기 전에 구조화된 단계별 구현 계획을 만듭니다. 계획이 올바르게 표시되면 구현 에이전트에 전달하여 실행합니다.
- 에이전트: 에이전트를 사용하여 에이전트 코딩 워크플로를 시작합니다. 에이전트를 사용하여 명령을 실행하거나, 코드를 실행하거나, 작업 영역에서 다른 작업을 수행할 수 있습니다.
중요합니다
에이전트를 사용하는 경우 GitHub Copilot 여러 프리미엄 요청을 수행하여 단일 작업을 완료할 수 있습니다. 프리미엄 요청은 사용자가 시작한 프롬프트 및 GitHub Copilot 사용자를 대신하여 수행하는 후속 작업에서 사용할 수 있습니다. 사용되는 총 프리미엄 요청은 작업의 복잡성, 관련된 단계 수 및 선택한 모델에 따라 달라집니다.
Ask를 사용하여 코드 리팩터링
Ask를 사용하여 코딩 작업에 대한 도움말을 얻고, 까다로운 개념을 이해하고, 코드를 개선할 수 있습니다. Ask는 GitHub Copilot Chat과의 대화형 대화를 위해 설계되었습니다. 실시간으로 질문을 하거나, 설명을 받거나, 제안을 요청할 수 있습니다.
채팅 보기를 열고 [질문]을 선택합니다.
채팅에 컨텍스트를 추가합니다.
Ask는 채팅 참가자, 슬래시 명령 및 채팅 변수를 지원합니다. 채팅 참가자 또는 채팅에
#codebase추가하여 파일 또는#codebase폴더와 함께 컨텍스트를 제공할 수 있습니다.리팩터링하려는 코드와 변경 내용을 이해하는 데 도움이 되는 질문을 합니다.
예를 들어 OAuth를 사용하여 현재 메서드를 업데이트하는 방법을 기존 인증 코드를 이해하는 데 도움이 되도록 GitHub Copilot 요청할 수 있습니다.
구현하려는 업데이트를 설명하는 프롬프트를 생성합니다.
프롬프트에는 구현하려는 코드 기능에 대한 설명이 포함되어야 합니다. 다음은 그 예입니다.
#codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files. Explain how to update the EnumHelper class using dictionaries and show me the updated code.채팅 보기에서 제안된 코드를 검토합니다.
채팅 보기에 표시되는 응답에는 기능을 구현하는 데 사용할 수 있는 코드 조각이 포함됩니다. 업데이트된 프롬프트를 입력하여 코드를 구체화하거나 자세한 내용을 요청할 수 있습니다.
제안된 코드를 구현하려면 마우스 포인터를 코드 조각 위로 마우스로 가리킨 다음 적용, 삽입 및 복사 옵션 중에서 선택할 수 있습니다.
- 적용: 편집기에서 현재 파일에 코드 제안을 적용합니다.
- 삽입: 편집기에서 현재 커서 위치에 코드 제안을 삽입합니다.
- 복사: 코드 제안을 클립보드에 복사합니다.
리팩터링된 코드를 테스트하여 오류 없이 실행되고 예상된 결과를 생성합니다.
플랜을 사용하여 코드 리팩터링
변경하기 전에 구조화된 단계별 구현 계획을 만들려는 경우 계획 에이전트를 사용할 수 있습니다. 계획 에이전트는 코드베이스를 분석하고, 명확한 질문을 하고, 자세한 계획을 생성합니다. 계획이 올바르게 표시되면 구현 에이전트에 전달하여 실행할 수 있습니다.
팁 (조언)
변경을 시작하기 전에 Ask를 사용하여 리팩터링에 관심이 있는 코드를 평가하고 옵션을 평가합니다. 플랜을 사용하여 구조화된 계획을 만든 다음 구현 에이전트에 전달할 수 있습니다.
채팅 보기를 열고 계획을 선택합니다.
채팅에 컨텍스트를 추가합니다.
채팅에 파일을 추가하고 사용하여
#codebase작업 영역 컨텍스트를 지정합니다.구현하려는 코드 기능을 설명하는 프롬프트를 생성합니다.
프롬프트에는 구현하려는 코드 기능에 대한 설명이 포함되어야 합니다. 다음은 그 예입니다.
#codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files.GitHub Copilot 생성하는 구조적 구현 계획을 검토합니다.
계획 에이전트는 코드를 변경하기 전에 검토할 수 있는 단계별 계획을 만듭니다.
계획이 올바르게 표시되면 구현 에이전트에 전달하여 실행합니다.
플랜을 에이전트에 전달하여 코드베이스에 변경 내용을 적용할 수 있습니다.
코드 편집기에서 제안된 편집을 검토합니다.
제안된 편집 내용을 적용하거나 취소합니다.
위쪽 및 아래쪽 화살표를 사용하여 편집을 탐색할 수 있습니다. 각 편집에 표시되는 팝업 메뉴를 사용하여 제안된 편집 내용을 개별적으로 유지(수락) 또는 취소(취소)할 수 있습니다. 편집기 탭(또는 채팅 보기)의 맨 아래에 있는 유지 및 실행 취소 단추를 사용하여 모든 편집 내용을 한 번에 적용하거나 거부할 수도 있습니다.
리팩터링된 코드를 테스트하여 오류 없이 실행되고 예상된 결과를 생성합니다.
에이전트를 사용하여 코드 리팩터링
코드를 리팩터링하는 프로세스를 자동화하려는 경우 에이전트를 사용할 수 있습니다. 에이전트는 사용자 대신 조치를 취할 수 있는 자율 에이전트 역할을 합니다. GitHub Copilot 특정 작업을 수행하도록 요청할 수 있으며 요청에 따라 코드를 생성합니다.
에이전트를 사용하면 자연어로 상위 수준의 작업을 지정하고, GitHub Copilot이 요청을 자율적으로 분석하여 필요한 작업을 계획하고 코드베이스에 변경 사항을 적용할 수 있습니다. 에이전트는 코드 편집 및 도구 호출의 조합을 사용하여 지정한 작업을 수행합니다. 요청을 처리할 때 편집 및 도구의 결과를 모니터링하고 반복하여 발생하는 문제를 해결합니다.
중요합니다
에이전트를 사용하는 경우 GitHub Copilot 여러 프리미엄 요청을 수행하여 단일 작업을 완료할 수 있습니다. 프리미엄 요청은 사용자가 시작한 프롬프트 및 GitHub Copilot 사용자를 대신하여 수행하는 후속 작업에서 사용할 수 있습니다. 사용되는 총 프리미엄 요청은 작업의 복잡성, 관련된 단계 수 및 선택한 모델에 따라 달라집니다.
채팅 보기를 열고 에이전트를 선택합니다.
GitHub Copilot 수행할 작업을 설명하는 프롬프트를 생성합니다.
둘 이상의 프로세스/기술을 사용하여 동일한 작업을 수행하는 코드 프로젝트가 있다고 가정합니다. 일관성, 유지 관리 효율성 및 성능을 향상시키기 위해 단일 접근 방식을 사용하여 코드를 리팩터링하도록 GitHub Copilot 요청할 수 있습니다.
다음은 그 예입니다.
Review the LINQ code used in the JsonData and JsonLoanRepository classes. Refactor the methods in the JsonPatronRepository class using LINQ queries. Ensure that existing code functionality is maintained.에이전트는 여러 도구를 호출하여 다른 작업을 수행할 수 있습니다. 필요에 따라 도구 아이콘을 선택하여 요청에 응답하는 데 사용할 수 있는 도구를 구성합니다.
도구 호출 및 터미널 명령을 확인합니다.
GitHub Copilot 터미널 명령 또는 빌드되지 않은 도구를 실행하기 전에 확인을 계속하도록 요청합니다. 도구가 컴퓨터에서 로컬로 실행되고 파일 또는 데이터를 수정하는 작업을 수행할 수 있으므로 확인이 필요합니다.
GitHub Copilot 코드 편집 및 터미널 명령에서 문제 및 문제를 검색하고 이를 해결하기 위한 작업을 반복하고 수행합니다.
중요합니다
GitHub Copilot 스스로 치유할 수 있지만 항상 자체적으로 문제를 해결할 수는 없습니다. 프로세스를 일시 중지하고 문제를 GitHub Copilot 이해하는 데 도움이 되는 더 많은 컨텍스트를 제공할 수 있습니다. 프로세스를 취소하고 새 프롬프트로 다시 시작할 수도 있습니다.
제안된 편집 내용을 검토하고 제안된 편집 내용을 적용하거나 취소합니다.
리팩터링된 코드를 테스트하여 예상된 결과가 생성되는지 확인합니다.
에이전트는 자체적으로 문제를 해결해야 하지만 코드를 테스트하여 예상대로 작동하는지 확인해야 합니다.
채팅 보기에서 실행 취소 단추를 사용하여 에이전트가 편집한 내용을 되돌릴 수 있습니다. 편집기에서 되돌리기 옵션을 사용하여 에이전트의 변경 내용을 되돌릴 수도 있습니다.
플랜 대신 에이전트를 선택할 때
계획과 에이전트 중에서 선택하려면 다음 조건을 고려합니다.
- 계획: 계획은 코드를 작성하기 전에 구조화된 단계별 구현 계획을 만듭니다. 에이전트는 편집할 관련 컨텍스트 및 파일을 자율적으로 결정하고 직접 변경하기 시작합니다.
- 작업 복잡성: 에이전트는 코드 편집과 도구 또는 터미널 명령 호출이 모두 필요한 복잡한 작업에 더 적합합니다.
- 기간: 에이전트는 요청을 처리하는 데 여러 단계를 사용하므로 응답을 생성하는 데 시간이 더 오래 걸릴 수 있습니다. 예를 들어 편집할 관련 컨텍스트 및 파일을 확인하려면 작업 계획 등을 결정합니다.
- 자동 복구: 에이전트는 생성된 편집의 결과를 평가하고 중간 문제를 해결하기 위해 여러 번 반복할 수 있습니다.
- 요청 할당량: 에이전트 모드를 사용하는 경우 작업의 복잡성에 따라 하나의 프롬프트로 인해 백 엔드에 대한 많은 요청이 발생할 수 있습니다.
요약
GitHub Copilot 코드베이스의 코드를 리팩터링하는 데 사용할 수 있습니다. 채팅 보기 에이전트를 사용하여 코드 리팩터링 작업을 분석, 계획 및 구현할 수 있습니다. 채팅 보기에는 요청, 계획 및 에이전트의 세 가지 기본 제공 에이전트가 포함되어 있습니다. Ask를 사용하여 코드베이스 또는 기술 개념에 대해 질문할 수 있습니다. 플랜을 사용하여 코드를 작성하기 전에 구조화된 구현 계획을 만들 수 있습니다. 에이전트를 사용하여 에이전트 코딩 워크플로를 시작할 수 있습니다.