Github에서 개발한 "AI pair programmer"를 표방하는 인공지능 코드완성 도구입니다.
VSCode의 Extension으로 존재하며, 현재는 대기 리스트에 등록을 해놓고 승인을 받아야만 정식으로 사용할 수 있습니다.
사이트에 직접 들어가서 보시면 아시겠지만, 생각보다 꽤 괜찮은 코드를 완성해주는 AI입니다.
사용법 : 간단하게 함수의 이름과 파라미터를 작성하고, 그 위에 주석을 작성하면 그것을 통해 Copilot이 코드를 완성해줍니다.
실제로 여러 함수를 작성하게 해보았는데요, 신기한 결과를 보여줍니다.
// 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;
}
함수명, 파라미터, 주석만 작성하였는데 꽤나 최적화된 알고리즘으로 코드를 완성 시켜줬습니다.
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에도 단점이 있습니다.
위와 같은 부분인데요, 결국 원하는 결과를 얻기 힘든 경우가 꽤 존재한다는 것입니다.
그럼에도 불구하고 Copilot은 개발을 보조하기 위한 도구라는 점을 생각해본다면, 쓸만은 하다는게 제 생각입니다.
이러한 단점외에도, 현재 외국에서는 Copilot의 등장으로 우려하는 몇몇 부분이 있습니다.
그 중 가장 우려되는 부분은 저작권, 라이센스, 개인정보침해 문제입니다.
Copilot을 사용하던 도중 다른 사람의 개인정보가 포함 된 코드가 자동완성되었다는 게시물이 인터넷에 올라오기도 했습니다.
Github는 자사의 공개된 데이터를 기반으로 학습을 하였기에 문제가 없다는 반응이지만, Copilot이 Preview가 아닌 정식으로 서비스를하게 될 때는 어떤 침해 문제를 발생시킬지 아무도 모른다는 것이 다른 전문가들의 입장입니다.
이러한 점을 볼 때, Copilot은 장점도 단점도 가지고 있어 사용에 주의를 두어야 할 것 같습니다.