Copilot Edits (미리 보기) 소개
2024년 11월 12일 작성자: Isidor Nikolic
최근까지 VS Code에서 GitHub Copilot을 두 가지 별도의 방식으로 사용할 수 있었습니다. 완성을 통해 편집기 내에서 코드를 수정하거나 인라인 채팅을 사용할 수 있었습니다. 또는 채팅 보기에서 코드를 질문하는 데 Copilot을 사용할 수 있었습니다. 미리 보기 기능인 Copilot Edits는 VS Code에서 Copilot을 사용하는 완전히 새로운 방식입니다. 채팅과 인라인 채팅의 장점을 결합합니다. 즉, 대화 흐름과 관리하는 파일 집합 전체에서 인라인 변경을 수행하는 기능입니다. 그리고 그냥 작동합니다.
여러 파일에 걸친 반복 작업을 위해 설계됨
Copilot Edits에서는 편집할 파일 집합을 지정한 다음 자연어를 사용하여 Copilot에게 필요한 것을 요청합니다. Copilot Edits는 빠른 반복 작업을 위해 설계된 UI를 사용하여 작업 영역 전체, 여러 파일에 걸쳐 인라인 변경을 수행합니다. 제안된 변경 사항을 검토하고 작동하는 것을 수락하고 후속 요청으로 반복하면서 코드 흐름을 유지합니다.

Copilot Edits는 고급 모델에 의존해서가 아니라, 즉 실수를 절대 하지 않는 모델에 의존해서가 아니라, 사용자를 제어할 수 있도록 하기 때문에 작동합니다. 그리고 경험은 반복적입니다. 모델이 잘못될 경우 여러 파일에 걸친 변경 사항을 검토하고 좋은 변경 사항을 수락한 다음 Copilot과 함께 올바른 솔루션에 도달할 때까지 반복할 수 있습니다. 변경 사항을 수락할 때 코드를 실행하여 변경 사항을 확인하고 필요한 경우 Copilot Edits에서 실행 취소하여 이전 작동 상태로 돌아갈 수 있습니다.
제어력 유지
새로운 UI 개념인 "작업 세트(Working Set)"가 사용자에게 제어권을 부여하고 편집 사항을 적용해야 하는 파일을 정의할 수 있도록 합니다. 파일을 끌어다 놓거나 편집기 탭을 끌어다 놓거나 `#`을 눌러 명시적으로 추가하여 작업 세트에 파일을 추가할 수도 있습니다. Copilot Edits는 자동으로 편집기 그룹 전체의 활성 편집기를 작업 세트에 추가합니다.

작업 세트와 실행 취소 및 다시 실행 기능은 변경 사항을 정밀하게 제어할 수 있게 해주며, 정확히 어디에 어떻게 적용할지 결정할 수 있게 합니다. Copilot Edits는 코드에 직접 생성된 편집 사항을 표시하고 코드 검토 흐름을 제공하여 AI 생성 편집 사항을 각각 수락하거나 삭제할 수 있습니다. Copilot Edits는 새 파일을 만드는 것을 제안하는 경우를 제외하고는 작업 세트 외부에서는 변경하지 않습니다.

Copilot Edits는 보조 측면 사이드바(기본값은 오른쪽)에 있어 탐색기, 디버그 또는 소스 제어 보기와 같은 기본 측면 사이드바의 보기를 상호 작용하면서 제안된 변경 사항을 검토할 수 있습니다. 예를 들어, 왼쪽의 테스트 보기에서 단위 테스트를 실행하는 동안 오른쪽에서 Copilot Edits 보기를 사용하여 각 반복에서 Copilot Edits가 제안한 변경 사항이 단위 테스트를 통과하는지 확인할 수 있습니다.
Copilot Edits를 사용할 때 음성을 사용하는 것은 자연스러운 경험입니다. Copilot에게 말하는 것만으로도 주고받는 것이 부드럽고 대화적입니다. 마치 실제 페어 프로그래밍에서 사용하는 것과 같은 반복적인 흐름을 사용하여 해당 분야의 전문가인 동료와 상호 작용하는 것처럼 느껴집니다.
Copilot Edits는 다양한 기술을 가진 사용자를 위해 AI를 사용한 코드 편집을 접근 가능하게 만듭니다. Microsoft의 제품 관리자로서 저는 코드를 많이 작성하지 않고도 Copilot Edits를 사용하여 초기 아이디어를 빠르게 반복할 수 있습니다. VS Code 엔지니어링 동료들에게 Copilot Edits는 vscode 리포지토리 전체에서 복잡한 리팩토링을 쉽게 수행하는 데 도움이 됩니다. 예를 들어, Swift 경험이 전혀 없던 한 팀원은 Copilot Edits를 사용하여 처음부터 사용자 지정 macOS 앱을 만들었습니다. 각 반복 후에 앱을 실행하고 작동하지 않는 부분을 식별한 다음 Copilot Edits에 적절한 후속 지침을 제공했습니다.
이면에서는
Copilot Edits는 편집 효율성과 정확성을 향상시키기 위해 이중 모델 아키텍처를 활용합니다. 첫째, 기본 언어 모델은 편집 세션의 전체 컨텍스트를 고려하여 초기 편집 제안을 생성합니다. GPT-4o, o1-preview, o1-mini 및 Claude 3.5 Sonnet 중에서 선호하는 기본 언어 모델을 선택할 수 있습니다. 성능이 뛰어난 환경을 위해 팀은 파일에 대한 변경 사항을 빠르게 적용하도록 최적화된 추측 디코딩 엔드포인트를 개발했습니다. 기본 모델의 제안된 편집 사항은 추측 디코딩 엔드포인트로 전송되어 편집기에서 해당 변경 사항을 인라인으로 제안합니다. 추측 디코딩 엔드포인트는 일반 모델보다 빠르지만, 팀은 이보다 더 빠를 수 있다는 것을 알고 있으며 이를 개선하기 위해 노력하고 있으므로 계속 지켜봐 주십시오.
지금 사용 가능
Copilot Edits는 미리 보기 상태이며 오늘부터 모든 GitHub Copilot 사용자에게 제공됩니다! 과거 #1 및 #2에서 제공해 주신 피드백은 이 기능을 출시하는 데 매우 중요했습니다. 정말 감사합니다!
Copilot Edits에 대한 자세한 개요는 공식 문서를 참조하십시오.
다음으로, 팀은 적용 변경 사항 추측 디코딩 엔드포인트의 성능을 개선하고, 컨텍스트를 유지하면서 Copilot Chat에서 Copilot Edits로 전환을 지원하고, 작업 세트에 파일을 제안하고, 제안된 청크의 실행 취소를 허용할 계획입니다. 이러한 개선 사항을 가장 먼저 사용해보고 싶다면 VS Code Insiders와 GitHub Copilot Chat 확장 프로그램의 미리 보기 버전을 사용하십시오. 이 기능을 개선하는 데 도움이 되려면 당사의 리포지토리에 문제를 제출해 주십시오.
궁극적으로 Copilot Edits 자체뿐만 아니라 Copilot Edits가 여러분이 구축하는 데 도움이 되는 것에 관한 것입니다.
즐거운 코딩 되세요!
Isidor