개발도구

GitHub Copilot

노루아부지 2022. 10. 7. 09:34

 

https://github.com/github-copilot/

 

GitHub Copilot?

Github Copilot은 코드 자동 완성을 통해 Visual Studio, Visual Studio Code, Neovim, JetBrains 등의 통합 개발 환경 사용자를 지원하기 위해 Github가 2021년 출시한 자동 코드 완성 AI(인공지능)입니다.

OpenAI의 GPT-3 모델을 이용하여 Github으 수많은 코드들을 학습시키는 방식으로 개발되었습니다.

 

Github Copilot은 주석이나 함수 이름에 담긴 의미를 파악하여 코드를 자동 완성해, 단순하고 번거로운 작업을 자동화한다는 것이 특징인데, AI 코더들의 등장으로 인해 수준 낮은 코더들이 사라지고 프로그래머는 더욱 높은 전문성을 요구할 것으로 예상됩니다.

 

2022년 6월에 유료로 전환되었는데 가격은 월 10$, 연 100$이고 60일간 무료체험을 할 수 있습니다.

다만 학생이거나, 어느 정도 규모가 있는 오픈소스 리포지토리의 관리자의 경우 12개월의 무료체험을 계속해서 갱신하는 형태로 지속적으로 무료로 이용 가능하다고 합니다.

 

GitHub Copilot은 TypeScript, Google Go, Python, Ruby, Java, Javascript를 포함한 수십 가지 언어를 작성하는데 도움이 될 수 있습니다.

 


GitHub Copilot의 저작권 문제

GitHub Copilot은 처음 등장할 때부터 저작권 문제에 대한 의문이 있었습니다. GitHub가 게시된 코드들을 활용하여 Copilot을 훈련시키고 이를 통해 새로운 코드를 창작하는 것이 원 코드 제작자의 저작권을 침해하는가입니다.

 

실제로 GPL로 공개된 퀘이크 3의 Fast Inverse Square Root 구현 코드를 그대로 생성해 저작권 문제에서 결코 자유로울 수 없음을 보여줬습니다.(자료)

 

GPL은 오픈 소스 프로그램 개발자 또는 판매자를 위한 라이선스인데 무엇이 문제인가라는 생각이 들 수 있습니다.

이 의문을 해소하기 위해서는 GPL의 주요 조항을 봐야 하는데요. 다음과 같습니다.

 

  1. GPL 라이선스 프로그램을 어떠한 목적으로든지 사용할 수 있다.
  2. GPL 라이선스 프로그램의 소스 코드를 용도에 따라 변경할 수 있다. (개작 가능)
  3. GPL 라이선스 프로그램을 판매/배포 시 소스 코드도 요청하면 제공하여야 한다. (원본 배포 의무)
  4. 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 요청 시 제공해야 한다. (파생물 배포 의무)
  5. 변경된 컴퓨터 프로그램 역시 반드시 똑같은 GPL 라이선스를 취해야 한다. (파생물 라이선스 의무)

 

즉 GPL 라이선스를 이용한 코드도 GPL 라이선스를 따라야 한다는 문제가 생기는 것입니다.

 


GitHub Copilot IDE 설정 방법

1) copilot 홈페이지에 접속

2) Start my freeTrial 버튼 클릭

 

3) Get access to GitHub Copilot 버튼 클릭

 

4) 이름, 주소 입력 후 다음 버튼 클릭

5) 신용카드 또는 페이팔 정보 입력 후 Save payment information 버튼 클릭

 

 

6) 허용 여부 선택 후 Save and get started 버튼 클릭

 

 

7) 사용할 IDE 선택

 

8) 안내에 따라 연동

 

 


GitHub Copoliot 사용 방법

 

사용방법은 간단합니다.

정해진 규칙대로 주석 또는 코드를 작성하면 추천 코드(Suggestion)를 보여줍니다.

마음에 들면 `Tab`을 누르면 되고, 마음에 안 들면 `Alt + [` 또는 `Alt + ]`누르면 다른 추천 코드를 보여줍니다.

다른 추천코드를 하나씩 보는 게 답답해서 한 번에 보고 싶다면 `Ctrl + Enter`를 누르면 됩니다.

MacOS의 경우에는 아래 이미지처럼 입력하면 됩니다.

 

GitHub Copoliot의 가장 큰 장점은 한글도 인식한다는 점입니다.

물론 한글로 하면 영어로 입력했을 때보다 뭐가 잘 안 될 것 같기는 합니다.

 

 

1) 주석 입력

말 그대로 코드를 작성하고 싶은 내용을 주석으로 작성하고 enter key를 누르면 회색으로 추천 코드(Suggestion)를 보여줍니다.

다음은 주석으로 원하는 코드 내용을 입력 후 enter를 입력한 후 추천되는 코드입니다.

GitHub Copilot
GitHub Copilot

 

다음은 Restful API 예제입니다.

사용자 목록을 구하는 list method는 제가 미리 만들어놓은 것이고, 특정 사용자 정보를 구하는 method는 GitHub Copilot이 추천해준 것을 볼 수 있습니다.

@PathVariable이 없는 단점이 있지만 그것만 제외하면 문제없는 코드가 생성된 것을 볼 수 있습니다.

GitHub Copilot

 

사용자 추가는 다음과 같습니다.

GitHub Copilot

 

여기서 탭을 눌러 코드를 실제 적용해 주면 toEntity()가 없기 때문에 에러 표시가 나는 것을 볼 수 있습니다.

기존 UserParam은 아래와 같습니다.

GitHub Copilot

 

이 상태에서 enter를 두 번 누르면 주석도, 함수 선언 부도 작성하지 않았음에도 불구하고 다음과 같이 코드 추천을 해줍니다.

GitHub Copilot

 

완벽하게 제가 만들어야 할 method가 추천되는 것을 볼 수 있습니다.

 

 

2) 함수 선언부 입력

아래 이미지는 함수 선언부를 입력했을 때 자동 완성되는 코드 예시입니다.

보이는 바와 같이 같은 함수 명이어도 return 자료형이 무엇인지, 인자가 무엇인지에 따라 추천 코드가 달라집니다.

GitHub Copilot
GitHub Copilot
GitHub Copilot

 

 

 

 

 

 

Reference

 

GNU 일반 공중 사용 허가서 - 나무위키

다음은 GPL의 주요 특징이다. (GPL은 한마디로 오픈 소스 프로그램 개발자 또는 판매자를 위한 라이선스이다.) GPL 라이선스 프로그램을 어떠한 목적으로든지 사용할 수 있다.GPL 라이선스 프로그램

namu.wiki

 

저작권동향 > 저작권동향(판례) > 자료 > 한국저

COPYRIGHT ISSUE REPORT 2022-09Copyright Implications of the Use of Code Repositories to Train a Machine Learning Model1)머신러닝 모델 훈련을 위한 소스코드 이용의 저작권 쟁점- GitHub의 Copilot을 중심으로 -2)한국저작권위원

www.copyright.or.kr

 

 

'코딩 해주는 AI' 깃허브 코파일럿, 저작권 침해 논란 [임주형의 테크토크]

세계 최대의 소스코드 공유 플랫폼 '깃허브'가 개발한 인공지능(AI), 깃허브 코파일럿이 일부 소프트웨어 개발자들의 우려를 사고 있습니다. 코파일럿은 미완성된 소스코드를 자동 완성하거나

n.news.naver.com

 

GitHub Copilot - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

728x90
loading