Github Copilot 체험 후기

kshired·2021년 7월 17일
2
post-thumbnail

Github Copilot이란?

Github에서 개발한 "AI pair programmer"를 표방하는 인공지능 코드완성 도구입니다.

VSCode의 Extension으로 존재하며, 현재는 대기 리스트에 등록을 해놓고 승인을 받아야만 정식으로 사용할 수 있습니다.

사이트에 직접 들어가서 보시면 아시겠지만, 생각보다 꽤 괜찮은 코드를 완성해주는 AI입니다.

실제 사용해보기

사용법 : 간단하게 함수의 이름과 파라미터를 작성하고, 그 위에 주석을 작성하면 그것을 통해 Copilot이 코드를 완성해줍니다.

실제로 여러 함수를 작성하게 해보았는데요, 신기한 결과를 보여줍니다.

  1. 간단한 소수 판별 함수
// determine num is prime number
const isPrime = (num) => {
  for (let i = 2; i <= Math.sqrt(num); i++) {
    if (num % i === 0) {
      return false;
    }
  }
  return true;
}

함수명, 파라미터, 주석만 작성하였는데 꽤나 최적화된 알고리즘으로 코드를 완성 시켜줬습니다.

  1. 날씨 데이터 가져오기
const axios = require('axios');

// fetch the weather data
const fetchWeatherData = (city) => {
  return axios.get(
    `http://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${process.env.OPEN_WEATHER_API_KEY}`
  );
};

이번에는 데이터를 가져오기위해, axios만 import하고 주석만 작성하였는데 위와 같은 코드를 완성해줬습니다.

함수명, 파라미터, url, 환경변수 아무것도 정해주지 않았는데도요.. 정말 신기하긴합니다.

이 외에도 실제로 개발하고 있는 코드에서도 생각보다 괜찮은 자동완성 예시를 보여줍니다.

개발에 도움이 될 것 같다는 생각이 드는 Extension입니다.

예전에 비슷한 코드 완성도구인 Tabnine이라는 것도 써봤는데, Copilot이 훨씬 좋은 선택지를 보여주는 느낌입니다.

하지만..

Copilot에도 단점이 있습니다.

  1. 원하는 코드가 자동완성예시로 나타나지 않을 수도 있다.
  2. 유용한 결과를 얻기위해, 주석을 여러번 재입력해야하는 경우도 있다.
  3. 라이브러리에 의존할 때(리액트 등..)는 정확한 결과를 얻기 힘들다.

위와 같은 부분인데요, 결국 원하는 결과를 얻기 힘든 경우가 꽤 존재한다는 것입니다.

그럼에도 불구하고 Copilot은 개발을 보조하기 위한 도구라는 점을 생각해본다면, 쓸만은 하다는게 제 생각입니다.

이러한 단점외에도, 현재 외국에서는 Copilot의 등장으로 우려하는 몇몇 부분이 있습니다.

그 중 가장 우려되는 부분은 저작권, 라이센스, 개인정보침해 문제입니다.

Copilot을 사용하던 도중 다른 사람의 개인정보가 포함 된 코드가 자동완성되었다는 게시물이 인터넷에 올라오기도 했습니다.

Github는 자사의 공개된 데이터를 기반으로 학습을 하였기에 문제가 없다는 반응이지만, Copilot이 Preview가 아닌 정식으로 서비스를하게 될 때는 어떤 침해 문제를 발생시킬지 아무도 모른다는 것이 다른 전문가들의 입장입니다.

이러한 점을 볼 때, Copilot은 장점도 단점도 가지고 있어 사용에 주의를 두어야 할 것 같습니다.

profile
글 쓰는 개발자

0개의 댓글