# 1. 깃허브 코파일럿이란?
<요즘 AI 페어 프로그래밍>으 AI 페어 프로그래밍 도구로 깃허브 코파일럿과 챗GPT, 클로드를 사용합니다. 코파일럿은 인공지능 기술을 활용해 소스 코드를 자동으로 작성하거나 수정하는 도구입니다. 깃허브 코파일럿은 코파일럿의 일종으로 깃허브(GitHub)가 출시한 프로그래밍을 돕는 인공지능입니다. 오픈AI의 GPT 언어 모델을 이용해 깃허브 리포지터리를 학습시켜 만든 프로그램에 특화시켰습니다. 깃허브 코파일럿은 개발 워크플로를 향상시키는 AI 코딩 도우미로서 개발사인 깃허브의 주장에 따르면 사용하지 않을 때보다 개발자 생산성과 소프트웨어 개발 속도가 55% 개선되었다고 합니다. VSCode, VS 스튜디오, 네오빔, 젯브레인 IDE를 지원합니다. 50,000+ 기업에서 사용하고, 포춘 500대 기업 3개사 중 1개사가 사용합니다. 깃허브 코파일럿은 AI 기반의 코드 작성 도우미로, 개발자와 협업하는 동안 새로운 코드를 생성하거나 수정 사항을 제안합니다. 예를 들어 함수나 주석을 작성하면 추천 코드를 제공합니다. 이는 코드 작성을 보다 효율적으로 만들어주고, 개발자의 생산성을 높여줍니다. 구체적인 특징은 다음과 같습니다. 코드 품질과 보안을 향상시킵니다. 코드베이스에 대한 일반적인 프로그래밍 질문 또는 구체적인 질문에 대한 답변을 빠르게 얻을 수 있습니다. 정규식을 설명하거나 레거시 코드를 개선하는 방법에 대한 제안도 제공합니다. 개발자가 입력할 때 코드 완성을 제안하고 프로젝트의 컨텍스트 및 스타일 규칙을 기반으로 자연어 프롬프트를 코딩 제안으로 전환합니다. 인라인 인용을 통해서 조직의 지식을 기반으로 맞춤형 답변을 얻어 검색 시간을 줄이고 학습에 더 많은 시간을 할애할 수 있습니다. 작업을 추적하고 설명을 제안하며 검토자가 변경 사항을 추론하는 데 도움을 줍니다.
# 1.1 깃허브 코파일럿 학생 무료 사용법
인증된 중・고등, 대학교또는 교육기관에 속한 사용자라면 교육 인증으로 깃허브 코파일럿을 무료로 사용할 수 있습니다. 아래 링크에서 Student Developer Pack을 신청하면 간단하게 교육 인증할 수 있습니다. https://education.github.com/pack
Student Developer Pack을 신청하려면 깃허브 계정에 학교 이메일을 등록해두어야 합니다. 대학생의 경우 보통 학교 이메일이 발급되므로 깃허브 설정에서 입력만 하면 되지만, 중・고등학생은 각 시도 교육청에서 지원하는 아웃룩, 구글 G-Suit 학생 계정생성 서비스로 발급받을 수 있습니다. 발급이 어려울 경우 각 학교의 행정실에 문의하면 지원 받을 수 있으니 학생이라면 꼭 참고하여 깃허브 코파일럿을 무료로 사용하세요.
이메일 등록 후 Student Developer Pack을 신청하여 학생증 및 재학증명서를 업로드하면 등록된 이메일 주소로 Student Developer Pack을 지급했다는 이메일이 올 겁니다. 만약 Student Developer Pack 지급이 안될 경우에는 학생증 및 재학증명서를 파일이 아니라 직접 사진을 촬영하여 업로드하는 것을 추천합니다.
# 2. 깃허브 코파일럿 프로세스
코파일럿 내부적으로 어떻게 데이터가 움직이는지 보고 나면, 코파일럿이 조금 늦게 답을 할 때, 혹은 어떤 이상한 답을 할 때 그 원인을 분석하기 더 용이합니다. 이제부터 깃허브 코파일럿 동작 방법을 살펴보겠습니다. 전체적인 프로세스 흐름은 다음 그림*과 같이 ❶ 컨텍스트 수집 → ❷ 콘텐츠 필터링 → ❸ 컨텍스트 분석 → ➍ 코드 생성 → ➎ 유저 인터랙션 및 응답 → ➏ 피드백 루프 → ➐ 프롬프트 기록 보존 → ➑ 히스토리 기록 순서로 진행됩니다. 이 흐름만 보면 굉장히 복잡해보입니다. 한 단계씩 차근히 살펴보겠습니다.
▼ 코파일럿 프롬프트 프로세싱 흐름
- https://techcommunity.microsoft.com
# ① 컨텍스트 수집
첫 번째 단계는 지금 사용자가 열어둔 에디터에서 컨텍스트를 수집합니다. 개발자의 주석과 채팅 메시지를 수집합니다. 그 밖에 컨텍스트를 파악할 목적으로 커서가 위치하는 코드, 편집 중인 파일의 이름과 유형, 인접하게 열려 있는 탭의 정보까지 수집합니다.
# ② 콘텐츠 필터링
두 번째 단계에서는 넘어온 코드와 컨텍스트를 확인하기에 앞서 콘텐츠 필터링을 하게 됩니다. 개인정보로 판단되는 데이터, 예를 들어 이름, 주소, 주민등록번호와 같이 개인이 식별되는 정보나, 부적절한 콘텐츠를 서버로 전달되기 전에 필터링합니다.
# ③ 컨텍스트 분석
3번째로는 넘어온 정보를 기반으로 컨텍스트를 분석하게 됩니다. 프롬프트 내의 사용자 요청 의도를 추출하고 의도와 컨텍스트 정보를 고려해서 구체적인 코딩 작업으기로록변환시킵니다.
# ④ 코드 생성
앞서 추출된 컨텍스트와 요청 내용으로 실제 코드를 생성합니다. 코파일럿은 대량의 공개 코드를 기반으로 하기 때문에 어떠한 AI 도구보다 언어와 프레임워크 문법에 정확한 코드를 생성해낼 수 있습니다.
# ⑤ 유저 인터랙션 및 응답
제안된 코드를 수락할 것인지, 수정할 것인지 혹은 거부할 것인지 선택하게 됩니다. 이제 마치 자율주행 자동차 운전석에 앉은 것처럼 깃허브 코파일럿의 코드 제안을 받아들이거나 혹은 필요한 요구사항을 전달하면 코드가 완성됩니다.
# ⑥ 유저 인터랙션 및 응답
수락을 한 경우 ‘의미 있는/알맞는’ 제안으로 피드백을, 거부한 경우 잘못된 제안이였다고 받아드리고 개선을 하겠다는 피드백을 보내게 됩니다.
# ⑦ 프롬프트 기록 보존
이런 프롬프트와 상호작용을 계속 세션에 올려두어 인터렉션 히스토리를 유지하고, 동일 세션 내에서 일관된 코드 제안을 만들 수 있도록 유지시킵니다.
# ⑧ 히스토리 기록
마지막으로 프롬프트와 상호작용 히스토리를 기록해 더 나은 퍼포먼스를 만드는 학습에 사용합니다. 이렇게 서비스를 많이 사용하면 사용할수록 이는 학습의 기반이 되고 더 좋은 코드를 작성할 수 있게 됩니다.
위 깃허브 코파일럿 프로세스는 VSCode에서도 바로 확인해볼 수 있습니다. VSCode → [보기] → [출력]을 선택하면 VSCode에서 일어나는 작업들의 로그를 확인할 수 있습니다. [출력] 창 우측 셀렉트박스에서 [GitHub Copilot]을 선택하면 앞에서 살펴보았던 깃허브 코파일럿의 프로세스 진행 로그를 확인할 수 있습니다.
지금까지 깃허브 코파일럿이 무엇인지 간단히 알아보고, 동작 프로세스를 살펴보았습니다. 깃허브 코파일럿과 함께 AI 페어 프로그래밍을 실현하세요! 더 다양한 GPT, AI 도구 사용법을 알아보고 싶다면 요즘 AI 페어 프로그래밍 (opens new window) 책을 추천합니다 😃))