Copilot 이란 [上] (by. 황재영 님)

Twolinecode
twolinecode
Published in
7 min readMar 8, 2024

GitHub Copilot은 더 적은 작업으로 더 빠르게 코드를 작성할 수 있도록 도와주는 AI 쌍 프로그래머입니다. 주석과 코드에서 컨텍스트를 끌어내어 개별 라인과 전체 기능을 즉시 제안합니다. GitHub Copilot은 OpenAI에서 만든 생성적 사전 학습 언어 모델인 OpenAI Codex를 기반으로 합니다. VS Code, Visual Studio, JetBrains IDE, Neovim을 포함한 다양한 코드 편집기와 함께 작동합니다.

Github Copilot 주요 기능

  • 컨텍스트 인식 코드 제안: 현재 코딩 컨텍스트와 관련된 코드 완성을 제공합니다.
  • 다국어 지원: 광범위한 프로그래밍 언어 및 프레임워크와 함께 작동하므로 다양한 코딩 프로젝트에 다용도로 사용할 수 있습니다.
  • 전체 함수 자동 완성: 함수 이름과 설명 주석을 기반으로 전체 함수 구현을 제안할 수 있 습니다.
  • 코드 리팩토링: 더 나은 효율성, 가독성 및 모범 사례 준수를 위해 기존 코드를 리팩토링 하는 데 도움을 줍니다.
  • 테스트 사례 작성: 다양한 테스트 프레임워크에 대한 테스트 스크립트를 생성하여 테스 트 중심 개발을 지원합니다.
  • 댓글에서 학습: 개발자가 작성한 댓글을 해석하여 타겟 코드 제안을 제공합니다.
  • 편집기와 통합: 기본적으로 Visual Studio Code와 같은 코드 편집기 내에서 확장으로 작동하도록 설계되어 개발자의 워크플로에 원활하게 통합될 수 있습니다.

Github Copilot 작동 방식

  • 코드 분석: 파일에 이미 작성된 코드를 분석하여 사용 중인 프로그래밍 언어와 컨텍스트를 이해합니다.
  • 주석 해석: 다음 코드 줄에 대한 개발자의 의도를 식별하기 위해 설명 주석을 해석합니다.
  • 제안 생성: 교육 및 주어진 컨텍스트를 기반으로 의도한 기능을 완성, 확장 또는 구현하 는 코드 조각을 제안합니다.
  • 사용자 상호 작용: 개발자는 이러한 제안을 수락, 거부 또는 수정할 수 있으며 도구는 이러한 상호 작용을 통해 학습하여 향후 제안을 개선합니다.

​​

Github Copilot 애플리케이션​

  • 신속한 프로토타이핑: 코드 구조와 로직을 빠르게 생성하여 프로토타이핑 프로세스를 가속화합니다.
  • 교육 도구: 신규 개발자가 코딩 패턴과 모범 사례를 학습할 수 있도록 지원합니다.
  • 생산성 향상: 반복적인 코딩 작업을 자동화하여 숙련된 개발자의 시간을 절약합니다.
  • 코드 탐색: 대체 구현을 제안하여 문제를 해결하는 다양한 방법을 탐색하는 데 도움이 됩니다.

​​

제한 사항 및 고려 사항​

  • 정확성 및 관련성: 매우 효과적이지만 항상 가장 최적이거나 올바른 솔루션을 제공하는 것은 아닙니다.
  • 코드 독창성: 특히 고유하거나 독점적인 솔루션이 필수적인 상황에서는 생성된 코드의 독창성과 관련된 고려 사항이 있습니다.
  • 학습 곡선: 사용자는 최대의 이점을 위해 도구와 효과적으로 상호 작용하는 방법을 배워 야 합니다.
  • 훈련 데이터에 대한 의존성: 제안은 훈련된 데이터만큼만 우수하며, 가능한 모든 코딩 시나리오나 최신 기술을 포괄하지 못할 수도 있습니다.

VS Code에서의 Copilot 사용

1. Copilot 홈페이지에 접속하여 구매 혹은 무료평가판 시작​

2. 본인의 Github/GitLab 계정과 연동​

3. 보안 설정

  • Github 접속 및 로그인
  • 프로필 아이콘 클릭 > Settings
  • 좌측 탭에서 Copilot 선택
  • Suggestions matching public code를 “Blockedˮ로 변경
  • Allow Github to use my code snippets for product improvements 체크 해제

4. VS Code Extensions에서 Github Copilot 검색 및 install

5. 결제했던 Github/GitLab 계정으로 로그인

6. 즐거운 사용!

주석을 통한 생성

기본 사용법

  1. 원하는 로직을 영어 / 한국어로 주석을 작성합니다. (영어가 조금 더 정확한 편)

2. 엔터를 누르면 아랫줄로 이동되며, 추천 메소드를 작성해 줍니다.

코드 리팩토링

효율성이나 가독성을 높이기 위해 Copilot에 코드의 특정 부분을 리팩토링 하도록 요청할 수 있습니다.

  1. 기존 코드

2. 주석 작성

3. 새로운 코드가 생성됨

4. 실제 동작 테스트 > 동작 완료

추가

  1. 리팩토링 예시

2. 이런 이상한 코드를 리팩토링 해 달라고 했을 때

문서 생성

Copilot에 요청하여 기존 코드에 대한 문서나 설명을 생성하세요.

1. 기존 코드에 대해 문서 생성 주석 작성

2. 내용 생성

코딩 문제 해결

코딩 문제를 주석으로 설명하면 Copilot이 솔루션을 제안할 수 있습니다.

  1. 기존 코드에 대해 주석 작성

2. 코드 생성

3. “Tab” 눌러 적용

4. 결과

코드 번역

Copilot에게 코드 조각을 한 프로그래밍 언어에서 다른 프로그래밍 언어로 번역하도록 요청 하세요.

1. 1부터 20까지 출력하는 python 코드

2. 최초 주석 입력

3. 추가적으로 설정할 수 있는 option 값들을 copilot이 추천해 줌.

4. 주석 수정

5. 결과

메소드명을 통한 생성

함수 구현 생성

목적을 설명하는 함수 이름을 정의할 수 있으며 GitHub Copilot은 해당 함수에 대한 구현을 제안할 수 있습니다.

1. 메소드명을 통해 어떤 작업을 할 메소드인지 명시

2. 자동 생성

3. “Tab”을 눌러 적용

4. items에 어떤 값이 있는지 추가적인 주석으로 명시 후에 메소드명 다시 작성

5. 명시된 items의 값으로 코드 재생성

오류 수정

1. 오류 부분에서 Ctrl + I

2. 오류 부분을 Copilot Chat을 통해 질문 할 수 있다.

3. 오류의 해결 방안을 추천해준다.

4. Accept를 눌러 바로 적용 가능

下 편에서는 Copilot Chat 사용법과 명령어, 초안 작성법에 대해 추가적으로 부연하도록 하겠습니다.

--

--

Twolinecode
twolinecode

We have the best solutions and experts for our customer’s digital business needs-everything from Cloud Infrastructure to Cloud Native Application.