적용된 GitHub Copilot 기술
이전 단원에서는 Copilot을 설정하는 방법을 보여주고 개발자가 더 빠르게 코드를 작성하도록 지원하는 방법을 설명했습니다.
이 단원에서는 Copilot이 기존 프로젝트에 어떻게 도움이 되고 더 복잡한 작업을 어떻게 도와주는지 이야기해 봅니다.
GitHub Copilot를 사용한 고급 작업
일반적으로 엔지니어로서 기존 프로젝트를 진행합니다. 코드를 수정하거나 기능을 구현할 때 설명서 및 테스트를 작성하고 터미널 명령을 사용해야 합니다. GitHub Copilot을 사용하여 이 작업을 수행할 수 있는 몇 가지 방법을 살펴보겠습니다.
암시적 프롬프트
GitHub Copilot 가이드를 가져오기 위한 프롬프트에서 구체적으로 지정할 수 있지만 미리 작성된 프롬프트를 암시적으로 제공하는 기능을 활용하여 좋은 답변을 얻을 수 있습니다.
예를 들어 Python 프로젝트에서 작업 중이고 버그가 있는 다음 코드로 파일을 연 경우:
with open("file.txt", "r") as file:
# Read the file and print the content
contents = file.read
코드를 선택하고 Ctrl+i(Windows) 또는 Command+i(Mac)를 사용한 후 인라인 채팅 및 /fix 슬래시 명령을 사용하여 코드를 수정하는 데 도움을 주도록 GitHub Copilot에 요청할 수 있습니다.
입력/fix만 하면 "코드를 수정하려면 file.read 후에 괄호를 추가하여 읽기 메서드를 호출하고 메서드 이름에서 오타를 수정합니다."라는 제안과 유사한 GitHub Copilot의 응답을 받을 수 있습니다.
슬래시 명령은 인라인 채팅과 채팅 인터페이스 모두에서 사용할 수 있습니다. 이 명령 외에도 /fix 코필로트 채팅에서 사용할 수 있는 가장 유용한 슬래시 명령은 다음과 같습니다.
-
/doc: 지정하거나 선택한 코드에 주석을 추가합니다. -
/explain: 코드에 대한 설명을 가져옵니다. -
/generate: 지정된 질문에 대답하는 코드를 생성합니다. -
/help: 코필로트 채팅을 사용하는 방법에 대한 도움말을 가져옵니다. -
/optimize: 선택한 코드의 런타임을 분석하고 개선합니다. -
/tests: 선택한 코드에 대한 단위 테스트를 만듭니다.
슬래시 명령을 사용하면 GitHub Copilot과 보다 쉽게 상호 작용할 수 있으며 더 긴 프롬프트를 작성하지 않고도 더 나은 응답을 얻을 수 있습니다.
슬래시 명령과 같은 기능을 인라인 채팅과 결합하면 사용자와 작업 중인 코드에 가장 적합한 방법을 선택할 수 있습니다.
선택적 컨텍스트
작업 중인 컨텍스트에 따라 제안을 제공하도록 GitHub Copilot을 사용자 지정할 수 있습니다. 예를 들어 GitHub Copilot에 전체 작업 영역 또는 터미널 출력에 따라 제안을 제공하도록 요청할 수 있습니다.
많은 파일을 열지 않아도 GitHub Copilot는 프로젝트에 대한 정확한 제안을 제공할 수 있습니다.
Dockerfile을 사용하여 프로젝트를 패키지해야 한다고 가정해 보겠습니다.
Dockerfile은 프로젝트를 패키지하기 위한 특정 지침이 필요한 특수 파일입니다. 에이전트를 @workspace 사용하여 GitHub Copilot에 도움을 요청하는 방법을 요청할 수 있습니다. 예를 들어 GitHub Copilot 채팅을 열고 다음 명령을 입력합니다.
@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?
프로젝트에 대한 Dockerfile을 만드는 단계를 설명하는 응답과 함께 해당 파일의 각 단계가 수행할 작업에 대한 설명이 전송됩니다.
항상 그렇듯이 제안 사항이 원하는 내용이 아닌 경우 프롬프트를 더 구체적으로 지정할 수 있습니다. 예를 들어, Dockerfile을 만들 때 GitHub Copilot에 특정 단계를 사용하도록 요청할 수 있습니다.
@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.
에이전트 외에도 @workspace 다음과 같은 @terminal@file@directory 다른 에이전트를 사용하고 컨텍스트별 제안을 가져올 수 있습니다.
-
@terminal: 터미널 출력에 따라 제안을 제공합니다.- 예: @terminal 표시되는 오류 메시지를 해결하려면 어떻게 해야 하나요?
-
@file: 특정 파일의 콘텐츠에 중점을 둡니다.- 예: @file main.py 이 함수를 리팩터링하는 데 도움을 줄 수 있나요?
-
@directory: 특정 디렉터리의 내용을 고려합니다.- 예: @directory utils 디렉터리에서 스크립트를 최적화하려면 어떻게 해야 하나요?
답이 나오지 않거나 원하는 결과를 얻지 못하는 경우 프롬프트에 다시 입력하거나 Copilot이 자동 완성하는 코드 작성을 시작할 수 있습니다.
참고 항목
@workspace로 구체적으로 지정할 수 있지만 기본적으로 GitHub Copilot는 텍스트 편집기에 열려 있는 파일을 추가 컨텍스트로 사용합니다.