Copilot이란?

OpenAI에서 만든 OpenAI Codex 모델을 사용한 실시간 코드 제안 AI 페어 프로그래머.

(OpenAI Codex란 자연어를 코드로 변환하는 머신러닝 모델로 미세조정된 GPT-3 버전 사용)

GitHub 공개 리포지토리에 있는 코드를 포함하여 공개적으로 사용 가능한 소스의 자연어 텍스트 및 소스 코드에 대해 교육 받음.

주석과 코드에서 컨텍스트를 가져와 기능 코드를 즉시 제안함.

GitHub Copilot이 개발자를 대체할 것으로 기대하지 않으며, 개발자와 협력할 것을 기대함.

  • 그들의 기능을 강화하고,
  • 생산성을 높이고,
  • 수동 작업을 줄이고,
  • 흥미로운 작업에 집중할 수 있도록 도와줄 것
  • 진입 장벽을 낮추고 더 많은 사람들이 소프트웨어 개발을 탐색하고 차세대 개발자에 합류할 수 있도록

Copilot 장점

상용구나 반복 코드 패턴 생성에 소요되는 시간을 줄여줌.

프로젝트의 컨텍스트 및 스타일 규칙을 기반으로 권장 사항을 공유함.

Neovim, JetBrains IDE, Visual Studio, Visual Studio Code 에서 플러그인 형태로 사용

특히 새로운 언어나 프레임워크에서 작업하거나 코딩을 배우는 중이라면 도움이 됨.

낯선 언어로 모든 것을 인터넷 검색하여 코딩하려고 하는 것은 외국어 숙어집만 가지고 외국을 항해하는 것과 같습니다. GitHub Copilot을 사용하는 것은 통역사를 고용하는 것과 같습니다.

Copilot 주의점

Copilot이 완변한 코드를 작성하지는 않음.

제안하는 코드를 테스트하지 않으며, 코드가 작동하지 않거나 의미가 없을 수도 있음.

안전하지 않은 코딩 패턴, 버그 또는 오래된 API 또는 관용구에 대한 참조가 포함될 수 있음.

신중한 테스트 및 코드 및 보안 검토 그리고 자신의 판단과 함께 사용해야 함.

책임은 항상 개발자에게 있음. (GitHub는 Copilot이 제공한 제안을 소유하지 않음)

공개 소스가 주로 영어로 되어 있어 자연어 프롬프트가 영어가 아니거나 문법적으로 잘못된 시나리오에서 제대로 작동하지 않을 수 있음.

Copilot 보안

GitHub의 공개 코드가 포함된 제안을 필터로 막을 수 있음.

(개인 설정이나 엔터프라이즈 관리자가 관리)

제안되었던 코드가 공유되거나 재사용되지는 않음.

경우에 따라 개인 데이터로 보이는 것을 제안하지만 이것은 가상 정보임.

Copilot 제안을 사용하여 저작권 침해로 고발되면? 제품별 약관에 제공된 대로 변호해준다고 함.

Copilot 관련 데이터

사용자 초기 관찰 및 인터뷰 결과 (2,000명 이상의 개발 대상)

  • 개발자 만족도 향상 : 사용자의 60~75% 작업에 만족, 코딩시 좌절감 덜 느끼고 더 만족스러운 작업에 집중할 수 있었음.
  • 정신 에너지 절약 : 흐름을 유지하고(73%) 반복적인 작업 중에 정신적 노력을 보존하는데 도움이 되었음(87%)

Copilot에 표시된 모든 완료의 평균 26%가 수락을 함.

(Python과 같은 특정 언어에서는 최대 40%까지 생성)

Copilot 잘 부려먹는 법

작은 함수로 나누고, 매개변수에 의미있는 이름을 사용

좋은 doc와 주석을 작성

익숙하지 않은 라이브러리나 프레임워크 탐색시 사용

Copilot 과금

  • 개인
    • 월 10$, 연 100$
    • 30일 평가판 사용 가능 (⚠️자동으로 유료 구독으로 전환됨)
    • 학생, 교사나 유명 오픈소스 리포지토리 관리자는 무료 구독 가능
  • 비즈니스
    • 인당 월 19$

Android Studio Plugins

Plugins에서 GitHub Copilot 설치

https://docs.github.com/ko/copilot/getting-started-with-github-copilot

 

 

Android Studio + Copilot

주석으로 한국어로 할 일을 적고 Copilot의 제안 받아보기

번역이 필요한 경우

테스트 코드 작성시

정규표현식 패턴 매칭

알고리즘 풀이

Android Room 사용하기

Android Activity xml 생성

 

참고문서

https://github.com/features/copilot/

https://docs.github.com/ko/copilot/getting-started-with-github-copilot

https://dev.to/github/a-beginners-guide-to-prompt-engineering-with-github-copilot-3ibp

https://github.blog/2022-09-14-8-things-you-didnt-know-you-could-do-with-github-copilot/

https://plugins.jetbrains.com/plugin/17718-github-copilot

 

'IT > ETC' 카테고리의 다른 글

Eclipse Copilot  (0) 2024.10.17
[SonarQube] SonarQube & Jenkins 이야기  (0) 2020.02.14
[SonarQube] SonarQube 도입기?  (0) 2020.02.07
[Docker] Docker란?  (0) 2018.03.23
Expert Beginner란...  (0) 2018.03.12

+ Recent posts