본문 바로가기
AI

[AI] GitHub Copilot 사용법 (8) - GitHub Copilot in the CLI

by 노력남자 2024. 1. 7.
반응형

이번 포스팅에선 GitHub Copilot in the CLI에 대해 알아보려고 한다.

 

GitHub Copilot in the CLI란?


GitHub Copilot in the CLI는 GitHub CLI의 extension으로 터미널에서 채팅과 유사한 인터페이스를 제공하여 CLI에 관한 질문을 할 수 있게 한다.

 

shell, gh, git command에 대한 질문을 할 수 있다.

 

GitHub Copilot in the CLI는 현재 베타 버전이라 GitHub Copilot Individual도 사용할 수 있다.

 

자세한 공식 홈페이지에 있는 설명이 궁금하다면 아래 자세히를 클릭해서 읽어보자.

 

더보기

GitHub Copilot in the CLI는 터미널에서 채팅 형식의 인터페이스를 제공하여 CLI에 관한 질문을 할 수 있게 해줍니다. GitHub Copilot에게 명령 제안이나 주어진 명령에 대한 설명을 요청할 수 있습니다.

 

GitHub Copilot in the CLI는 사용자의 질문을 처리하고 자연어 처리 및 기계 학습의 조합을 사용하여 응답을 생성합니다. 이 과정은 여러 단계로 나눌 수 있습니다.


입력 처리


사용자의 입력 프롬프트는 GitHub Copilot in the CLI에 의해 전처리되어 큰 언어 모델에 연결된 GitHub 서비스로 전송되고, 거기에서 컨텍스트와 프롬프트를 기반으로 응답을 생성합니다. 사용자 입력은 자연어 프롬프트나 질문 형태일 수 있습니다. 또한 미리 정의된 목록에서 묻고자 하는 명령 유형을 선택할 수도 있습니다. 즉, 일반 쉘 명령, Git (git) 또는 GitHub CLI (gh)입니다. 시스템은 CLI 관련 질문에만 응답하도록 설계되었습니다. GitHub CLI에 대한 자세한 내용은 "GitHub CLI 소개"를 참조하세요.


언어 모델 분석


입력 프롬프트는 언어 모델을 통해 전달되며, 이는 대량의 텍스트 데이터에 대한 훈련을 받은 신경망입니다. 언어 모델은 입력 프롬프트를 분석하여 쿼리에 가장 관련된 명령 또는 명령 설명을 찾습니다.


응답 생성


언어 모델은 입력 프롬프트의 분석을 기반으로 응답을 생성합니다. 이 응답은 제안된 명령 또는 요청한 명령에 대한 설명의 형태를 취할 것입니다. 제안된 명령을 실행하려면 명령을 복사하여 터미널의 별도 창이나 탭에 붙여넣어야 합니다.


출력 형식


GitHub Copilot in the CLI에서 생성된 응답은 형식이 지정되어 여러분에게 제시됩니다. CLI의 Copilot은 문법 강조, 들여쓰기 및 기타 서식 기능을 사용하여 생성된 응답을 명확하게 표시합니다.

Copilot in the CLI는 여러분의 질문에 가장 관련된 답변을 제공하는 것을 목적으로 합니다. 그러나 항상 원하는 답을 제공하지는 않을 수 있습니다. GitHub Copilot in the CLI를 사용하는 사용자는 시스템에 의해 생성된 응답을 검토하고 확인하여 정확하고 적절한지 확인할 책임이 있습니다. Copilot in the CLI는 또한 제안을 평가할 수 있는 선택적인 피드백 메커니즘을 제공하여 향후 도구를 개선하는 데 도움이 됩니다. 자세한 내용은 "GitHub Copilot in the CLI의 성능 향상"을 참조하세요.

 

GitHub Copilot in the CLI 사용 사례

 

GitHub Copilot in the CLI는 작업을 수행하는 데 도움이 되도록 명령 제안이나 주어진 명령에 대한 설명을 제공할 수 있습니다.


작업 수행을 위한 적절한 명령 찾기


GitHub Copilot in the CLI는 작업을 완료하는 데 도움이 되는 명령을 제안하기 위해 노력합니다. Copilot in the CLI에게 더 나은 제안을 위해 찾고 있는 명령의 유형(generic, git 또는 gh)을 지정할 수 있습니다. 결과가 기대한 것과 다르다면 계속해서 질문을 수정하여 반환된 명령이 기대에 부합하도록 할 수 있습니다. 작업에 완벽한 명령을 생성한 후에는 클립보드에 손쉽게 복사하여 필요한 곳에서 실행할 수 있습니다.

 

익숙하지 않은 명령 설명하기


GitHub Copilot in the CLI는 사용자가 물어본 명령에 대한 자연어 설명을 생성하여 해당 명령의 기능과 목적을 설명하는 데 도움을 줄 수 있습니다. 이는 명령의 문서를 읽거나 검색하지 않고도 특정 예제에 대한 명령의 동작을 이해하고 싶을 때 유용할 수 있습니다. 설명에는 명령의 입력 및 출력 매개변수 및 사용 예제와 같은 정보가 포함될 수 있습니다.

GitHub Copilot in the CLI가 설명을 생성함으로써 명령을 더 잘 이해할 수 있게 도울 수 있어 학습 향상, 생산성 향상, 그리고 컨텍스트 전환 감소에 기여할 수 있습니다. 그러나 생성된 설명이 항상 정확하거나 완전하지 않을 수 있으므로 출력을 검토하고 가끔 수정해야 합니다. 명령 라인에서 실행하는 명령의 정확성과 적절성을 확인하는 것은 여전히 사용자의 책임입니다.

 

GitHub Copilot in the CLI 개선

 

GitHub Copilot in the CLI를 향상시키고 제한 사항을 극복하기 위해 다양한 조치를 취할 수 있습니다. 제한 사항에 대한 자세한 내용은 "GitHub Copilot in the CLI의 제한 사항"을 참조하십시오.


도구로서의 GitHub Copilot in the CLI 활용


GitHub Copilot in the CLI는 명령 및 CLI에 대한 이해를 향상시키는 강력한 도구일 수 있지만, 이를 인간 프로그래밍의 대체로 사용하는 대신 도구로 사용하는 것이 중요합니다. Copilot in the CLI에 의해 생성된 명령을 항상 검토하고 확인하여 요구 사항을 충족하고 오류나 보안 문제가 없는지 확인해야 합니다.


피드백 제공


GitHub Copilot in the CLI와 관련된 문제나 제한 사항이 발생하면 GitHub Copilot in the CLI에서 "Rate response" 옵션을 선택하여 피드백을 제공하는 것이 좋습니다. 이는 개발자가 도구를 개선하고 관련 우려나 제한 사항을 해결하는 데 도움이 될 수 있습니다.

 

GitHub Copilot in the CLI 제약 사항

 

GitHub Copilot in the CLI의 정확도는 운영 체제 및 입력 데이터와 같은 요소에 따라 다를 수 있습니다. 다음 정보는 GitHub Copilot in the CLI의 성능에 관련된 시스템 제한과 주요 개념을 이해하는 데 도움을 제공합니다.


제한된 범위


GitHub Copilot in the CLI의 훈련은 2021년까지의 인터넷에서 가져온 온라인 콘텐츠를 기반으로 합니다. 이는 정의된 범위 내에서 작동하며 복잡한 명령, 드물게 사용되는 명령 또는 최근에 개발된 도구에 어려움을 겪을 수 있습니다. 각 언어에 대한 제안의 품질은 훈련 데이터의 가용성과 다양성에 영향을 받을 수 있습니다. 예를 들어 Git과 같이 잘 문서화된 명령 및 도구에 관한 질문은 더 난해한 명령행 도구에 관한 질문과 비교하여 더 정확한 응답을 제공할 수 있습니다.


잠재적인 편향 및 오류


GitHub Copilot in the CLI의 훈련 데이터는 기존의 온라인 소스에서 가져온 것입니다. 이러한 소스에는 훈련 데이터에 기여한 개인들의 편향과 오류가 포함될 수 있습니다. Copilot in the CLI는 이러한 편향과 오류를 무심코 계승할 수 있습니다. 또한 GitHub Copilot in the CLI는 스크립팅 언어나 스크립팅 스타일에 따라 다르게 동작할 수 있으며, 이로 인해 최적이 아니거나 불완전한 명령 제안이나 설명이 발생할 수 있습니다.


부정확한 응답


GitHub Copilot in the CLI는 표면적으로는 유효해 보이지만 문법적 또는 의미론적으로 부정확한 명령을 생성할 수 있습니다. 문제를 방지하려면 항상 주의 깊게 제안을 검토하고 확인하십시오. 특히 콘텐츠 삭제와 같이 중요하거나 파괴적인 작업에 대한 경우에는 생성된 명령이 최선의 방법을 따르며 워크플로에 적합한지 확인하십시오.


비 코딩 주제에 대한 부정확한 응답


GitHub Copilot in the CLI는 명령행과 관련된 작업 범위를 넘어가는 질문에 대한 답변을 제공하는 것이 아닙니다. 결과적으로 코딩이나 일반적인 명령행 사용과 관련 없는 질문에 대해 일관된 정확성이나 지원을 제공하지 않을 수 있습니다. 비 코딩 주제에 대한 문의 시 GitHub Copilot in the CLI는 유의미한 응답을 제공할 수 없다는 표현을 할 수 있습니다.


자연어에 따라 다르게 성능이 달라짐


GitHub Copilot in the CLI는 주로 영어로 작성된 자연어 콘텐츠에서 훈련되었습니다. 결과적으로 영어 이외의 언어로 자연어 입력 프롬프트를 제공할 때 GitHub Copilot in the CLI의 성능이 다르게 나타날 수 있습니다.

 

GitHub Copilot in the CLI 설정 방법

 

1. GitHub CLI 설치

 

GitHub Copilot in the CLI은 GitHub CLI의 extension이라 먼저 GitHub CLI를 설치해야 한다.

 

아래 사이트에 나와있는 OS별 설치 방법을 보고 설치하자.

 

 

GitHub - cli/cli: GitHub’s official command line tool

GitHub’s official command line tool. Contribute to cli/cli development by creating an account on GitHub.

github.com

 

2. GitHub CLI로 계정 연결

 

GitHub CLI를 사용하려면 당연히 로그인을 먼저 해줘야 한다.

 

터미널을 열고 git auth login 입력하면 각 질문의 답을 선택하는 게 나온다.

 

아래와 같이 선택하고 엔터를 눌러주자.

 

 

브라우저 창이 나온다. 위 네모친 번호 8개를 입력해주자. 그냥 복붙해도 된다. -> Continue 클릭

 

 

Authorize github 클릭

 

 

 

 

3. GitHub Copilot in the CLI Extension 설치

 

터미널 열고 gh extension install github/gh-copilot 입력

 

 

GitHub Copilot in the CLI 명령어

 

git으로 시작하지 않는다. gh로 시작한다!

 

- explain

 

명령어에 대한 설명을 듣고 싶을 때 사용한다.

 

1) 내가 궁금한 명령어가 뭔지 아는 경우

 

gh copilot explain "궁금한 명령어"

 

repository 생성 명령어에 대해 물어봤다.

 

gh copilot explain "gh repo create"

 

아쉽게도 한글로 나오진 않는다.

 

 

2) 내가 궁금한 명령어가 뭔지 모르는 경우

 

gh copilot explain

 

위 명령어를 입력하면 어떤 설명이 필요하냐고 물어본다.

 

한글로 대답해도 답이 나온다.

 

근데 명령어를 알려달라니까 직접 들어가서 만드는 방법을 알려준다. 상세하게 질문을 작성하는 게 좋겠다.

 

거의 ChatGPT네;;

 

 

- suggest

 

명령어를 추천, 내가 작성한 명령어를 개선할 때 사용한다.

 

1) 명령어 추천받고 싶을 때

 

gh copilot suggest

 

gh 명령어 중 repository를 만드는 명령어를 추천받아 보겠다. (방향키로 조정한 후 엔터)

 

 

repository를 만들고 싶다고 말했더니 gh repo create [repository-name] 명령어를 알려줬다.

 

 

Explain command로 설명을 요구할 수도 있고, Revise command로 요구사항을 추가로 설명해서 추천받은 명령어를 개선할 수도 있다.

 

Rate response는 응답이 잘 왔는지 평점을 남기는 기능이다. 

 

Revise Command로 선택 후 effortguy repsoitory를 만들고 싶다고 해보니 잘 나온다.

 

 

2) 내가 작성한 명령어 개선을 하고 싶은 경우

 

git copilot suggest "내가 작성한 명령어"

 

내가 작성한 명령어를 입력한 후 Revise command를 선택해서 요구사항을 얘기하면 고쳐준다.

 

 

- config

 

Copilot 옵션 설정할 때 사용하는 명령어

 

gh copilot config

 

내 데이터 수집 여부에 대한 설정밖에 할 수 없다.

 

 

 

 

CLI라 그런지 사용하기가 좀 불편하다. Copilot Chat을 쓰고말지 이걸 굳이 써야하나 싶은 마음이 든다.

반응형

댓글