베이스 아카이브

AI가 대신 코딩해주는 깃허브 'Copilot' (코파일럿) 본문

IT/지식정보

AI가 대신 코딩해주는 깃허브 'Copilot' (코파일럿)

반키 2021. 12. 24. 00:40

오늘은 깃허브 Copilot(코파일럿)에 대해 이야기해볼까 합니다.

 

지난 6월 29일 깃허브가 Copilot 이라는 AI 서비스를 베타로 발표했습니다.

요즘 이 코파일럿이 개발자들을 대체할 거라는 소문이 자자합니다.!

 

Copilot 은 깃허브에서 만든 AI 기능입니다.

AI의 어떤 기능이냐 하면 코딩을 자동으로 완성시켜주는 기능을 말합니다.

쉽게말해

스마트폰에서 문자메시지 자동완성 기능처럼

코드를 치는 순간에

그다음 코드를 자동으로 제안해주는 서비스입니다.

 

사용자가 소스 코드를 계속 작성을 하다가

중간 정도까지 코드를 작성하게 되면

그 코드를 AI가 계속 추적을 하고 있다가 

다음 함수나 반환 값 등을 자동으로 입력해주는 서비스입니다.

 

개발자는 이제 함수를 일일이 짜는 게 아니라

해당 함수가 어떤 기능을 해야 하는지 커맨드만 쓰면 됩니다.

그러면 Copilot은 전체 코드를 자동 완성해서 보여주게 되는 거죠!

 

 

이 코파일럿에 대한 배경지식에 대해 설명을 해보자면,

Copilot은 Open AI의 Codex로 구동되고 있습니다.

Codex는 Open AI의 GPT-3 후손(?) 같은 거라고 이해하시면 됩니다.

( GPT-3도 굉장히 유명한데 이에 대한 설명은 다음에 다뤄보도록 하겠습니다. )

 

GPT-3는 인간이 쓰는 것과 거의 같은 텍스트를 생성해냅니다.

인터넷에 있는 뉴스나 블로그, 논문 등 모든 텍스트를 재료 삼아서

텍스트를 생성하기 때문에

인간이 쓴 것인지, GPT-3가 쓴 것인지 구별이 어려울 정도라고 합니다.

 

Codex도 GPT-3와 마찬가지로 엄청난 양의 데이터로 훈련을 받았습니다.

물론 여기서 훈련받은 데이터는 바로 

깃허브에서 오픈되어 사용 가능한 모든 코드들입니다.

 

맞습니다.

우리 모두가 깃허브에 푸시했던 그 수많은 코드들이,

깃허브가 무료라서 열심히 푸쉬했던 그 코드들이,

AI를 훈련시켰습니다.

 

좋게 얘기하면

AI가 이를 통해서 더 좋은 코드를 생성할 수 있게 되었다는 거죠.

 

 (※ 여기서 오픈되어 사용한 모든 코드를 오픈소스라고 합니다.

오픈소스는 개발자들의 문화라고 생각하시면 됩니다.

자신이 새롭게 알게 된 사실이나 새롭게 만든 기능, 서비스 같은 것을

모든 사람이 접근할 수 있게 풀어서 사용할 수 있도록 하는 것이

개발 생태계에서의 어떤 문화입니다.

그 문화를 적극적으로 지원해주는 서비스가 바로 깃허브 입니다. )


Open AI는 그 유명한 일론 머스크가 공동 창업자로 있는 비영리 기관입니다.

AI가 인류에 공헌할 수 있도록 만들어진 기관이라고 생각하시면 됩니다.

 

최근 이 기관을 "Capped Profit(제한된 이익법인)"으로 변경했습니다.

그리곤 MS에서 10억 달러 (약 1조원)를 받았습니다.

 

그들의 AI 기술을 MS만 독점적으로 사용할 수 있도록 말이죠.

 

더 이상은 "OPEN" AI 가 아닌 듯하네요..

"Closed" AI 아니면 "MS" AI라고 불러야 할 듯...^^

 

아시는 분들은 알고 계시겠지만

MS(MicroSoft)는 깃허브를 인수했습니다.

또한 Azure 라는 클라우드 서비스도 운영하고 있고

VScode(Visual Studio Code)를 만들기도 했습니다.

 

보다시피 모든 것이 연결된 것처럼 보이지 않나요?

 

작년에 MS의 최근 행보가 심상치 않다는 말들이 많이 있었는데

이런 전략을 짰을 거라고는 상상도 못 했습니다...

 

사실 이런 코파일럿이 프로그래밍계의 AI로서 첫 번째 시도는 아닙니다.

이미 미국의 실리콘밸리에서는

수많은 스타트업이 계속해서 도전하고 있는 분야입니다.

코파일럿은 유명하다 못해 개발자들 사이에서 필수로 사용되고 있는 

GitHub에서 출시한 서비스라는 것에서

엄청난 경쟁력을 가지고 있습니다.


이제 진짜 Copilot의 위력을 알아보도록 합시다.

 

 Copilot을 쓰려면 2가지 방법이 있습니다.

하나는 함수명을 아주 상세하게 적는 것입니다.

 

아래에 왼쪽 사진과 같이 최솟값을 찾는 함수를 입력하게 되면 

Copilot이 코드를 자동으로 완성시킵니다.

회색으로 보이는 글씨가 코드를 입력하기 전 자동으로 뜬 자동완성 기능입니다. )

 

 

또 다른 방법은 이런 식으로 커맨드를 사용할 수도 있습니다.

오늘 테슬라 주식 값을 찾으라고

커맨드를 사용하여 함수를 만들면

이런 식으로 오늘 테슬라 주식을 찾아주는 코드를 자동완성 시켜줍니다........

심지어 알아서 API 까지 자동으로 불러옵니다.. 저도 처음에 보고 굉장히 놀랐습니다...

 

 

어느 유저의 트위터를 가져오라고 입력한 다음

function 만 입력해도 그 뒤로 자동완성 기능이 전부 뜹니다..

 

 

오늘 날씨를 가져오라는 말만 쳐도

이렇게 바로 자동완성이 뜨는 것도 모자라

OpenWeather API까지 가져온다니... 진짜 장난 아닙니다..

 

저는 JavaScript로 되어있는 예시를 보여드렸지만

다른 프로그래밍 언어들도 가능합니다.

 

 

Open API CEO 마저도 이런 예측을 남겼다고 하죠

AI는 컴퓨터 앞의 노동 가격이 육체적인 노동 가격보다
훨씬 더 빠르고 값싸게 만들 것이다.

즉, 개발자나 디자이너와 같은 

컴퓨터 앞에서 일하는 사람들이

다른 직업들보다 더 빠르게 대체될 수도 있다는 말입니다.

 

 

이쯤 되니 MS의 전략이 생각나네요.

Embrace (수용), Extend (확장) 그리고 Extinguish (전멸)

 

MS는 깃허브를 인수한 뒤 깃허브를 무료로 만들었습니다.

그리고 VScode라는 좋은 에디터를 제공해줬죠.

이 두 가지의 툴을 사용해서 개발자들은 코드를 생성하고 저장하고 있습니다.

 

그리고 그 코드들은 개발자를 대체할 AI를 훈련시키고 있습니다.

 

사실 개발자들에게 의존하고 있는 회사들이 생기고 있는 상황에서

개발자들의 가치가 올라가는 만큼 많은 비용을 부담해야 되는 것보단

개발자들을 대체해버리는 게 회사 입장에서는 편할 수도 있겠죠.

그렇게 되면 회사에서는 더 이상 개발자를 고용하지 않아도 되고 

그냥 MS에게 돈을 주고 저렴한 AI를 쓰면 되는 겁니다.

 

하지만 Copilot을 써본 분들의 얘기를 들어보면

Copilot을 쓰면 쓸수록 아직까진 완벽하지 않고 실수도 많이 보인다고 합니다.

그럼 이 실수는.... 개발자들이 잡아내서 고치겠죠..?ㅎ

 

왜냐하면 결국 AI는 코드가 어떻게 생겼는지, 그 패턴을 알고 있을 뿐

코딩을 아는 것은 아니기 때문에

Copilot이 코드를 주게 되면

결국 개발자가 평가를 하고 도입을 해야 합니다.

그렇기 때문에

아직까진 Copilot이 개발자를 대체할 수 없다고 생각합니다...

(조만간 어떻게 될지 모르겠지만 당장은요...ㅎ 그래 봤자 길면 3~5년...ㅎ)

 

 

Copilot의 코드가 완벽하게 작동한다는 보장은 없습니다.

이미 깃허브 웹사이트에도

"GitHub Copilot이 제시한 코드는 테스트된 코드가 아니다.

따라서 코드는 컴파일이 안 되거나 작동이 되지 않을 수 있다."

라고 작성되어있습니다.

 

캠브리지 대학교가 조사한 바에 따르면,

개발자들은 100% 중 50%의 시간을 프로그래밍이 아닌 디버깅에 쓴다고 하는데요,

Copilot 기능을 함께 쓴다면 코딩을 더 빠르게 할 수 있게 되고

이전처럼 디버깅에 많은 시간을 낭비하지 않게 되는 거죠.

이제는 Copilot이 한 코드를 디버깅하면 되는 겁니다.

 

여기서 염두해야 되는 건 Copilot은 이미 존재하는 코드로 훈련되었다는 겁니다.

어떻게 보면 버그 투성이인 코드로 훈련을 받기도 한 셈이죠.

따라서 버그로 가득한 코드를 개발자에게 제시할 수도 있습니다.

 

또한 코드를 제한할 뿐,

결국은 Array를 쓸지, Object를 쓸지, Binary 검색을 할지, Linear 검색을 할지 등에 대해서는

개발자가 결정해야 합니다.

Copilot은 그저 솔루션 이행을 빠르게 할 뿐

결국 개발자가 창의적인 해결방법을 생각해내야 한다는 의미입니다.

 

Copilot 덕분에 반복적이고 지루한 업무는 하지 않게 되고

수천 명의 개발자들이 쓴 코드를 쓰고 또 쓰는 작업은 피하게 되는 겁니다.

진짜 개발을 하는 데 있어서

얼마나 더 좋은 코드를 작성하는가에 대해

더 많이 집중할 수 있게 되었다고 볼 수 있겠네요.

 

저는 이런 생각이 들기도 합니다.

 

나중에 Copilot이 작성한 코드를 푸시하고

Copilot은 개발자가 작성한 코드로 훈련을 하고..?

그러면 코드가 더 개선될까요? 아니면 더 엉망이 될까요?

 

나중에 회사는 AI가 만들어낸 코드를 디버깅만 하는 개발자를 따로 뽑게 될까요?

혹은 보안상의 이유로 회사는 Copilot 사용을 금지하게 될까요?

아니면 누군가 Copilot 코드로 회사 핵심 업무를 처리했는데

버그가 나게 된다면 그건 누구의 책임인 걸까요?

개발자? MS? AI?... 

이에 대해 많은 생각을 해볼 수 있을 것 같습니다.

 

어찌 됐든 흥미롭고 좋은 뉴스라고 생각됩니다!

이러한 Copilot은 개발자보다

비개발자분들에게 굉장히 환영받을 만한 서비스가 될 것 같기도 합니다.

개발자들의 퇴근시간을 지금보다 더 빠르게 해 줄 수 있고

비개발자분들은 자기가 원하는 것을

더 잘 만들 수 있게 해주는 그런 서비스로 다가갈 테니까요.

 

무엇보다도

개발자의 효율과 생산성을 높이 올려주는

도움이 되는 기능이 되었으면 좋겠습니다.

 

그럼 Copilot에 대한 의견 많이 남겨주세요~!

 

포스팅 읽어주셔서 감사합니다!


https://base-archive.tistory.com/entry/개발자를-고생시킨-Log4j-보안-취약점

 

개발자를 고생시킨 Log4j 보안 취약점

개발자들이 무언가를 개발할 때 반드시 해야만 하는 것이 있습니다... 바로 " 로그(Log) " 를 남기는 것...! 로그는 한국어로 번역하면 '기록' 을 말합니다. 사용자가 어떠한 기능을 실행했는지,

base-archive.tistory.com

Comments