개발자를 위한 부사수 Github의 Copilot

Page content

앉아서 에디터 창에 코딩을 하다보면 집중이 잘 되어서 코딩이 막힘없이 되는 날이 있을겁니다.
하지만 그런 날은 많지가 않죠..
전화나 회의등으로 맥이 끊어지는 경우도 많고, 심신적인 이유로 집중이 안되는 날도 있고..
이런 날이 다들 더 많을겁니다. 이런 문제를 월 만원정도로 해결할 수 있다면, 당신은 비용을 지불 할것인가??

저는 이 비용을 내고, 이 문제를 해결한거 같습니다. ㅎㅎ
이 해결 방법은 github의 copilot 이라는 AI 입니다.
이제부터 copilot(코파일럿)에 대해 더 자세히 알아 보도록 하겠습니다.
만일 이것과 캐미가 맞다면, 당신의 코딩은 많은 변화를 경험하게 될겁니다. ^^;

 


Copilot 가 뭐지?

copilot main page

Copilot은 GitHub가 2021년 10월에 출시한 자동 코드 완성 인공지능 입니다.
OpenAI의 GPT-3 기반으로 인공지능 모델을 사용해서 프로그래머의 코드를 분석해 적당한 코드를 제안하는 형태입니다.
Copilot은 오픈소스 코드 저장소(아마도 github일듯)의 많은 프로젝트와 라이브러리를 학습했기 때문에 깜짝 놀랄만한 코드를 제안해 주기도 합니다.
Copilot은 현재 파이썬, 자바스크립트, 타입스크립트, 루비, 고 언어를 지원하며, C 계열 언어(C, C++, C#)는 향후 지원될 예정이라고 합니다.
그외 언어는 변수나 주석등을 자동으로 구성해 주는 정도이기는 하지만, 없는것보다는 더 편한 것은 확실합니다.

하지만, 아쉽게도 이 부조정사는 월 $10달러는 지불해야 하는 유료 서비스입니다.
이 금액을 지불할지 말지는 글을 다 읽어 보시고, 판단하시기 바랍니다.

 


Copilot 사용해 보기

코파일럿은 사용하기 위해서는 github에서 신청하면 됩니다.

github에서 로그인후 setting으로 들어가면 copilot을 신청할 수 있습니다.
 

현재는 한달동안 무료로 사용이 가능하니, 한달 사용후 과금을 결정하셔도 됩니다.
결제하면 $1달러인가 결제 되었다가, 취소 될겁니다.
(오래되어서 정확하지는 않습니다.)
 


 


Billing Summary 밑으로 내리면, Add-ons에서 구독취소가 가능합니다. (cancel trial)
 

다시 copilot으로 가보면 이같은 화면을 볼수 있을겁니다.
여기서 copilot를 사용 허가나 사용 안함으로 설정도 가능합니다.
물론 해당 프로젝트별로 가능하지만, 이곳에서는 전체적으로 사용할지 말지를 설정하는거 같습니다.

혹시나 영어로 되어 있어서 어려워 하실 분들이 있을까 간략히 신청 방법을 알아보았습니다.
   
 


VSCode에서 Copilot 사용하기

이제 vscode에서 copilot를 사용해 보겠습니다.
사용하기 위해서는 extetions에서 copilot를 설치해 줘야 합니다.

설치후 테스트로 코드를 작성해 보면, 이처럼 a만 입력하면 알아서 코드를 작성해 줍니다.
여기서 tab를 누르면, 자동완성이 완성이 되게 됩니다.

이건 간단한 형태이고, 일반적인 함수나 내용을 구성할때는 놀랄때가 있었습니다.
정확히 앞으로 작성할 것을 예측해서 구성해 준다는겁니다.
(물론, 모든 코드에서 그런것이 아닙니다.. 자주 사용하는 구문에서는 주석까지 완벽하게 구성해 주더군요.)
 

다른 코드로 확인을 좀 더 해 보도록 하겠습니다.

react mysql connect

react로 mysql에 접속하는 샘플 코드입니다. 변수명 지정하고, 구성만 조금 해 주면.. 최대한 비슷한 구성을 가져와 알아서 구성해 줍니다.
 

하나 더 보겠습니다. 이번에는 php에서 구성하는 코드입니다.

php mysql connect

이 코드는 function connectToMySQL($host, $user, $password, $database){까지 작성하면 나머지는 코파일럿에 의해 작성된 코드입니다.

이런식으로 많이 사용되는 코드는 바로바로 구성이 가능합니다.
하지만, 좀 특별한 구성이나 구조일때는 이처럼 자동완성이 다 구성되지는 않습니다.
이때는 위에서 지정한 변수명이나 사용할 값등을 세팅해 주어서 편의성을 높혀줍니다.

즉, 모든 코드를 알아서 작성해 주는 것이 아니고, 자주 사용되는 코드는 github 학습된 데이타를 근간으로 그 코드를 그대로 가져와 세팅을 해 주는 것으로 보여집니다.

 
그외 fix, doc, test도 가능합니다.
이게 copilot에서 지원하는 것인지, copilot chat까지 설치가 되어야 지원되는지 정확하지는 않습니다..
(저는 copilot chat까지 설치되어서 생기는 메뉴일 수도 있습니다. 만일 지원이 되지 않는다면, chat까지 설치해야 가능한 것으로 생각해 주세요.)

copilot menu

explain, fix, docs, tests 메뉴를 볼 수 있습니다. 여기서 일부러 오류를 발생시키고, fix를 해 보겠습니다.
 

bug fix

대중적인 코드이고, 참조를 한 코드라서 그런가.. 바로 오류를 fix해 줍니다. 물론, 이처럼 안되는 코드가 많습니다..
대체적으로 코드를 구성해 주는 코드(대중적으로 많이 사용하는 코드에서는 잘 잡아내는거 같습니다.)
 

code documentation

그다음 doc(문서화)를 구성해 보겠습니다.

docs를 해 주면 주석으로 함수의 목적, 매개변수, 반환값 등을 자세히 설명해 줍니다.
이건 차후 많이 편할거 같더군요..
 

code test

마지막으로 test를 해 보겠습니다.

이처럼 주석과 함게 테스트용 페이지를 바로 만들어 줍니다.
심플한 구성이라서 이런게 가능하지 않을까 생각하지만, 이런 것을 처음보니, 좋아보이네요.
 
 

그외 Copilot Labs라는 것도 있습니다.
실험적으로 사용하는 것으로 정식 출시가 안될 수도 있으면, 오류등이 있을수 있으니.. 우선 참조만 해 보세요.
(copilot을 사용 가능해야지 사용이 가능합니다.)

이처럼 사이트 메뉴에 들어가서 사용이 가능하며, 다른 개발 언어와 번역도 가능하다고 하는데..
잘 안되는 경우가 많더군요.. 그래서 구지 자세히는 다루지 않을겁니다.
관심 있으면 한번 살펴보시면 될거 같습니다.
이곳에서도 bug fix가 있는데.. 이게 제대로 못 잡아내더군요.

적다보니, 많이 길어진거 같네요.. ㅎㅎ
몇달 동안 사용을 해 보니, 전 좋은거 같다고 생각해서 앞으로 쭈욱 사용하려고 합니다.
 
 


동료 NPC 같은 Copilot

동료 NPC 아이루
 

꼭 해야 되는 게임이 있는데, 혼자서 공략집이나 이것저것 참조해서 플레이를 하다가.. 많이 지쳐가고 있는데..
갑자기 동료 npc가 생긴 겁니다.
근데, 이 놈이 잡몹은 잘 잡아주지 뭡니까!!
따라다니면서 길이 헤깔릴때는 방향도 잡아주고, 종종 엄한 짓을 하면서 정신 없게도 하고,
보스 잡는데는 도움이 되지 않지만, 그 과정에서 함께 하니 심심하다는 생각이 안 들더군요.
혼자서 플레이 하는 환경에서 왠지 사고뭉치 부사수가 하나 생긴거 같다는 생각이 들었습니다.

전 이 개발이라는 게임속에서 동료 NPC를 만난거 같아서 즐거운거 같습니다.. ^^;

 
다음에는 copilot chat에 대해서 알아보도록 하겠습니다.
끝.