본문 바로가기

윈도우 개발환경

GitHub copilot; 프로그램을 대신 작성해 주는 AI

0. 개발에 이용되는 AI

최근에 딸이 학교 친구들을 대상으로 GPT를 학교 숙제나 공부에 이용해 봤는지 설문조사를 해 봤는데 80% 이상이 이미 사용하고 있다고 응답했다. 또, 70% 이상의 학생들이 GPT가 도와서 만든 결과에 대해서 만족하고 앞으로도 더 많이 사용할 것이라고 응답했다.

 

소프트웨어 개발에도 GPT는 이미 대세이다. 검색엔진에 검색어를 넣고 바꿔 가면서 결과가 맞는지 확인해 보는 이전 방식보다, 요즘은 개발할 때 GPT나 Copilot에게 궁금한 내용을 물어보는 경우가 많다. 회사의 개발자들에게 물어봐도 개발하면서 GPT를 사용하고 있다고 말하는 사람이 점점 늘어고 있다.

 

이제는 한 단계 더 나가서, 프로그램의 일부를 대신 작성해 주는 AI 도우미인 GitHub Copilot를 사용하는 개발자들도 늘어나고 있다. 약간의 돈을 지불하고 일을 빨리 끝내고 일찍 퇴근할 수 있다면 개인돈이라도 투자할 만한 가치가 있지 않을까?

1. GitHub Copilot

GitHub은 SourceForge를 오픈소스 생태계에서 밀어내고 개발자들이 현재 가장 많이 사용하고 있는 소스코드 형상관리 플랫폼인데, 2018년에 마이크로소프트가 인수했다. 개인적으로, 마이크로소프트가 GitHub을 인수하고 가장 만든 서비스 모델이 GitHub Copilot이지 않을까 생각된다.

 

머쉰러닝은 기본적으로 과거의 데이터를 학습해서 주로 수학적인 선형 모델을 만들고 이를 기반으로 분류, 예측을 하는 방법이다. Neural Network은 선형 함수 대신 비선형 함수(activation function)를 사용해서 선형적이지 않고 더 복잡한 패턴을 학습하는 데 성공했고, 이것을 GPU라는 수많은 단순계산 processor의 도움으로 엄청나게 많은 Hidden layer로 확장한 것이 딥러닝 모델이고, 이 딥러닝은 지난 10년 사이에 빠르게 발전하면서 현재의 인공지능 전성기를 만들어 냈다.

 

다시 말해, 모든 인공지능은 과거 데이터에 대한 학습결과이다. 마이크로소프트는 GitHub을 인수하면서 GitHub Copilot개발에 필요한 많은 소스코드에 대해 접근할 수 있게 되었고, 이 데이터를 구글이 만든 트랜스포머 기반의 GPT와 결합해서 GitHub Copilot을 만들어 냈다. 즉, GitHub Copilot은 GitHub를 사용하는 개발자들이 만들어 놓은 지식을 내가 개발하면서 쉽게 가져다 쓸 수 있는 도구이다.

a. VSCode에 GitHub Copilot 연결

  • "GitHub Copilot" Extension은 GitHub계정으로 결재하고 사용하는 계정이기 때문에 먼저 GitHub을 연결한다.

VSCode에 GitHub을 연결하는 방법은 이전에 정리한 적이 있으니, 아래를 참고해서 연결하면 된다.

 

개발 소스코드 관리; 4. Github 사용하기 - 2) VScode 연결, 해제

1. 형상관리, CI/CD 2. Git을 설치하고 덤으로 얻는 리눅스 환경 3. Github 사용하기 - 1) 계정생성, Token 발행 4. Github 사용하기 - 2) VScode 연결, 해제 5. 예제로 본 Git 사용법 (기본 명령어) - 1 5. VScode와 Gith

front-it.tistory.com

  • GitHub Copilot extension을 설치한다.

Github Copilot을 신청하지 않았으면 오른쪽 아래 빨간색 네모 안의 아이콘에 사선이 그려져서 나온다.

 

  • GitHub Copilot을 신청한다.

Extension 설명화면의 중간에 있는 "Sign up for GitHub Copilot free trial"을 누르고 GitHub으로 이동하고, 30일 무료체험에 등록한다.

 

GitHub의 신청 정보가 VSCode에 자동으로 반영되지 않기 때문에, 결재가 끝나면 VSCode를 다시 실행한다. 

b. GitHub Copilot과 함께 VSCode 사용

  • 에디터 창에서 프로그램을 작성하기 시작하면 Copilot이 나머지 코드에 대한 힌트를 자동으로 제공한다.

코드가 마음에 들거나, 힌트로 제공된 코드를 사용해서 편집하려면 TAB 키를 누르면 된다.

 

  • Copilot에게 문장으로 어떤 내용이 필요한지 알려주면, 에디터로 작성할 때 Copilot이 필요한 문장을 알려준다.

예를 들면, 아래 예의 경우, FastAPI main을 만들겠다고 힌트를 주고 나면 필요한 문장들을 알려준다. 아래 화면의 내용은 Copilot이 주는 힌트를 TAB으로 적용하기만 하고 직접 작성한 내용은 없다.

 

  • 어떤 함수가 필요한지 함수명으로 힌트를 주면 Copilot이 샘플을 제시해 준다.

  • 브라우저에서 사용하듯이 Chat방식으로 물어볼 수도 있다.

Ctrl + Shift + P로 Command Palette를 불러낸 다음, "GitHub Copilot: Add File to Chat"을 선택하고 나오는 창에 도움이 필요한 부분을 입력하면 자세한 설명이 나온다. 아래는 "how to def post"를 입력하고 나온 Chat결과이다.