업무가 몰려서 포스팅이 늦어졌네요.
7월 28일날 GitHub Copilot 관련해 포스팅했었고
그 과정에서 Copilot Technical Preview를 신청했습니다.
(사전 체험)
10월 27일날 마참내!
아래와 같이 메일을 받아 사용해볼수 있는
기회가 생겼었습니다.
프로젝트 로고 몇개 만들고부터 로고에 관심이 많아졌는데
GitHub Copilot은 아래와 같은 로고를 가집니다.
생김새가 폴가이즈랑 너무 비슷한데
아무튼 권한을 얻어 바로 설치했고
현재로서는 세가지 IDE를 지원하는 모습입니다.
저는 원래부터 vscode에서 환경에서 Go를 통해 Copilot을
현재(11월 8일)까지 쭉 사용해 봤습니다.
1. Copilot 개요
간단합니다. 그림으로 쉽게 이해가 되는데
에디터의 코드 일부를 GitHub에 제공하여
코드를 제안하고 사용자의 행동에 따라 학습하는 방식을
사용합니다.
Codex Model은 OpenAI에서 만든 GitHub의 핵심이 되는 시스템인데
대화체로 입력받은 문장을 해석해 알맞은 코드를 만들어내는 AI입니다.
2. 사용
우선 저같은 경우에는 코딩할 때 한줄을
다 작성하고나서 고민해보는 스타일이어서
자연스럽게 코딩하면서 Copilot과 협업이 되진 않았습니다.
힌트를 주고 기다려야 코드가 추천되거든요.
때문에 제대로 사용하기 위해서는
사용 방법에 먼저 익숙해질 필요가 있습니다.
사용법은 간단합니다.
우선 아래처럼 일부만 치고 2초 정도 기다려보면 코드를 추천해줍니다.
(주석으로 코드를 추천받는 것도 가능합니다.)
Mac에서는 'Alt + ], [' 를 이용해 추천되는 여러 코드를 확인할 수 있습니다.
'tap'을 눌러 해당 코드를 입력할 수 있습니다.
(상세한 단축키와 사용법은 여기를 참고)
개인적으로는 타입 명시가 필요없는
Python이나 JavaScript에서 잘 추천해주는것 같은데
공식페이지에 공개했던 Go로 진행해봤습니다.
2.1. 함수 헤더 분석
아래와 같이 함수 이름을 입력하고 2~3초 정도 기다리면 추천하는 코드가 표시됩니다.
대체로 함수 이름과 파라미터를 상세하게 작성할수록 원하는 코드가 나올 확률이 높아집니다.
이정도는 간단한 유틸함수를 만들때 유용하게 사용할 수 있다고 생각합니다.
또한, 현재 작성하고 있는 코드의 문맥을 참고하여 작성합니다.
위와 같이 테스트케이스를 작성하는 도중에 추천을 받으면
기존에 작성한 테스트케이스 코드를 참고하여 추천하는 모습을 볼 수 있었습니다.
2.2. 문맥 분석
작성하는 도중에 멈춰 있어도 코드를 추천해줍니다.
(뇌를 조금 비워도 코딩할 수 있게 해주네요.)
기존에 작성한 Interface, Structure 등을 이용해 기본적인 사항은 잘 추천해주는 편입니다.
함수 헤더를 정의하듯이 new 같은 변수이름 힌트를 주면
어느정도 적절한 형태의 코드를 추천해줍니다.
이정도의 추론도 가능해서 재밌었습니다.
'어떻게 했더라?' 싶은것들을 잘 추천해주네요.
2.3. 주석 분석
주석을 작성하면 코드를 추천해줍니다.
위처럼 함수 헤더를 추천해주고 헤더를 이용해 함수를 추천해주기도하고
주석만으로 전체 코드를 추천해주기도 합니다.
주석을 길고 자세하게 남길수록 더 정확한 코드를 추천해주기는 하는데
개발자가 코드를 작성하기 위해 주석을 대신 코딩하는 느낌이랄까
Copilot 컨셉 자체는 개발자와 Cowork를 하기 위한것인데
비개발자가 아니고서야 굳이 주석으로 컴퓨터가 코딩하게 하는 방법을 사용할까..?
비효율적이기도하고 이상하다는 느낌도 드네요.
숙련되면 짧은 주석으로 코드 프레임을 완성하고
디테일을 수정하여 코딩 시간을 줄일 수 있을지도 모르겠지만
제 스타일은 아니네요.
처음 봤을때 느낌으로는 비개발자도 쉽게 개발을 하도록
도와주는 느낌이었는데 체감상으로는 아직 불가능하게 느껴지네요.
코드 자체가 의도한대로 작성되는지 믿기 힘들기 때문에
개발자의 검토가 필요합니다.
코드 snippet을 만드는데는 도움이 됩니다.
작성하다가 잠깐 생각하는 중에 원하는 코드 비슷하게 추천해주는 경우가 종종 있네요.
(가끔 완벽하게)
자동으로 완성되면 '다른사람들도 이렇게 만들고 있구나' 라는 생각이 들기도하고
종종 품질 좋은 코드를 추천해주면 유용하게 쓸수도 있을것 같습니다.
일단 지금처럼 켜놓고 가볍게 코딩하는데는 좋지만 이걸 돈내고 사용하려면...
비용적으로 좀 메리트가 많이 있어야 할것 같다는 생각이듭니다.
물론 제가 현재 Copilot의 모든 기능을 완벽하게 사용할 수 있는 숙련자도 아니며
앞으로도 계속 발전할것이기 때문에 지금 판단이 바뀔수 있겠지만 현재로선 그정도 수준이네요.
앞으로가 기대되는 재밌는 경험이었습니다.
'Tech > Other' 카테고리의 다른 글
JOSE(JSON Object Signing and Encryption) (4) | 2022.07.20 |
---|---|
vMotion(Live Migration) (0) | 2021.11.23 |
Duplex, Duplication(이중화) (0) | 2021.10.26 |
CPU는 어떻게 동작할까 (2) | 2021.08.03 |