본문 바로가기
IT/IT 잡지식

GitHub Copilot #2 AI Code Suggestion

by 큰공 2024. 2. 5.
728x90
반응형

GitHub Copilot AI Code Suggestion #2

2024.01.25 - [IT/IT 잡지식] - GitHub Copilot #1 시작하기

 

GitHub Copilot #1 시작하기

GitHub Copilot 시작하기 AI Coding 이 대세입니다. 요즘 개발자들은 IDE 옆에 ChatGPT가 필수적으로 띄워져있는 모습을 볼 수 있습니다. GhatGPT 가 세상을 뒤엎은게 엊그제 같은데, 여러가지 AI Coding 툴들이

coinpipe.tistory.com

 이전 포스팅에서 GitHub Copilot 이란 무엇이고, 어떻게 시작하는지에 대해서 상세하게 알아보았습니다. 오늘은 Github Copilot 을 실제로 사용해보고 어떤 기능이 있는지 알아보도록 하겠습니다.

 

GitHub Copilot 의 기능

 GitHub Copilot 은 여러가지 기능이 존재합니다. Individual 계정 기준으로 크게 3가지 기능을 사용할 수 있습니다.

  • AI Code Suggestion : IDE 상에서 다음 코드를 제안하는 기능입니다.
  • Copilot Chat : ChatGPT 와 같이 IDE 상에서 AI 봇과 채팅으로 대화하는 기능입니다.
  • CLI Copilot : CLI ( Command Line Interface) 에서 AI 봇에게 다음 명령어를 추천 받는 기능입니다.

이번 포스팅에서는 위의 다양한 기능 중에 AI Code Suggestion 기능에 대해서 살펴보도록 하겠습니다.

테스트 환경

 포스팅에 앞서, Github Copilot 을 사용한 테스트 환경은 아래와 같습니다.

 

 - Android Studio Iguana | 2023.2.1 Canary 12

 - GitHub Copilot : 1.4.10.4352

 - 언어 : Kotlin, JetPack Compose

 

Copilot 단축키

 단축키를 알면 그 기능을 훨 씬더 잘 활용 할 수 있고, 대략적인 기능이 무엇이 있다도 알 수 있게 됩니다. 기능 설명에 앞서서 단축키에 대해서 알아보도록 하겠습니다.

Copilot 단축키

 

 

  • TAB : Copilot 이 제안한 코드를 수락하는 것으로 회식으로 제안 한 전체 부분을 한번에 수락합니다.
  • ESC : 제안한 코드를 취소합니다.
  • ALT + ] [ : 제안한 코드 중에 다른 코드가 있는지 살펴 보는 기능입니다. 여러가지 다른 제안을 보고 싶을 떄 사용합니다.
  • Alt + \ : 인라인 제안 트리거라고 하는데, 코드에서 Enter 를 치는것과 유사한 기능으로 생각됩니다.
                 제안이 나오지 않을 때, 트리거 용도로써 사용하는것으로 파악되며, 자동 제안 기능을 disable 했을 때,
                 트리거 용도로 사용가능합니다.
  • Alt + Enter : 별도 창에 추가 제안하는 기능입니다.

※ Alt + \ , Alt + Enter 는 Android Studio 기준으로 Keyshort Cut 에 이미 다른 기능이 등록된 상태로 세팅 다시 해야 합니다.

 

코드 자동 완성

 코드에서 Enter 를 입력하거나, 앞글자 몇개만 입력하면 그 다음에 이어질 코드를 자동으로 제안 하는 기능입니다. IDE 상에서 키보드로 "o 글자 하나"만 입력했는데, onBackPressed() 함수를 자동으로 제안하는 모습을 확인 할 수 있습니다.

 

안드로이드 시작 기본코드를 기반으로 작성된 코드에서 제안을 받은 모습인데, 대부분의 안드로이드 앱들이 onBackPressed() 함수를 제일 먼저 사용하는것으로 알 수 있습니다.

 

 즉, 다음 코드를 작성하기 위해서 Enter 만 입력 했음에도 불구하고, 다음에 이어질 코드를 수많가지의 Code를 학습한 AI가 여러가지 상황에서 코드를 제안해 줍니다.

 

 사용하다보니 드는 생각은 처음에는 GitHub Copilot AI Code Sugesstion 이 나의 코드를 이해한단말이야? 라고 들었는데, 점점점 쓰다보니 아니, 나의 생각을 읽나? 라는 정도로 적기적소에 딱 맞는 코드를 제안하는 모습도 보여주었습니다.

 

대체 제안 보기

 코드 자동 완성 제안이 나온 상태에서 Alt + ] , Alt + [ 선택 시 다음 제안을 알려주는 기능도 있습니다. 코드 제안이 마음에 안들거나 다른 코드 제안을 보고 싶을 때 사용가능합니다.

 

제안 수락

 원하는 제안을 보면서, 전체를 수락하고 싶으면 TAB  키를, 부분적으로 수락하고 싶으면 Control + → 를 사용합니다. 부분적으로 제안을 수락하다가 여기까지만 내가 원하는 코드이고, 다음 부터는 다른 제안을 받고 싶으면, ALT + ], [ 을 이용하여 다른 제안도 받을 수 있습니다.

 

새 탭에서 여러 추천 보기 (별도의 창에서 추가 제안)

 ALT + ] , [  키를 이용해서 다른 제안을 보는 기능도 존재하지만, 제안 전체를 한번에 보는 기능도 있습니다. 오히려  ALT + ] , [ 기능보다 더 많은 제안을 보여주므로 사용하다 보면 자주 사용하게 되는 기능입니다.

 

 오른쪽 창에 전반적으로 onBackPressed() 함수에 대해서 어떻게 작성하는지, 세부 내역은 어떻게 되는지 다각도로 제안해주고 있습니다.

 

주석에서 코드 제안 생성

 GitHub Copliot 은 주석을 읽어서 다음에 이어질 코드를 제안해주는 기능도 있습니다. 개발자가 함수를 작성하기 전에 함수에 대한 주석을 먼저 작성하는 습관을 가지고 있다면, Copilot 은 이 주석을 토대로 밑에 나올 함수를 제안해 주게 됩니다.

 

 주석으로 onPause 함수에 대해서 입력하니, 아래에 onPause 함수를 제안해 주는 모습입니다. // onPause Fuction 이라고 주석만 달고 Enter를 쳤음에도, 아래의 코드를 제안해주는 모습입니다.

 

Alt+Enter 로 상세 제안보기를 선택하면, onResume, onDestory, onPause 등 기본이 되는 override 함수를 추천해줍니다.

 

 

주석으로 현재 위치를 얻는 Location Manager 라고 주석을 달면, Location Manager에 대한 예제를 보여줍니다.

제안하는 코드 라인도 100라인 이상을 제안해 주고 있습니다. 결국 고르는건 개발자의 몫이긴 하지만, 다양한 제안을 보여주고 있습니다.

 

// Location Manager for getting the current location

 

주석을 한글로 입력하여도 이해하고, 여러가지 제안을 보여줍니다. 현위치를 얻어오는 함수 작성이라고 한글 주석을 달았음에도 다음 이어지는 코드는 안드로이드에서 현 위치를 얻는 API를 사용하는 코드를 제안해줍니다.

 

주석 제안

 코드 뿐만아니라 주석을 쓰고 있으면 주석에 대한 자동완성도 해줍니다. 앞서 말한 내용과 살짝 다른 내용인데, 앞선 내용은 주석을 달면 코드를 제안하는 기능이였다면, 앞 뒤 코드를 이해해서 주석을 자동으로 달아주는 기능입니다.

 

 아니, AI Copilot 이 주석도 달아주고 코드도 달아주고, 이제 개발자는 뭐를 하면 되지??

 

 

 주석으로 "아래코드" 만 적었는데, 뒤에 이어 나올 내용을 실제 아래 코드가 뭔지 분석해서 달아주는 모습입니다.

 

요약

 GitHub Copilot 의 주요 기능중에 AI Code Suggestion 에 대해서 알아보았습니다. 코드도 자동으로 생성해주고, 주석도 자동으로 생성해주고, 개발자는 이제 코드만 보고 선택만 하면 되는 경지에 다달았습니다.

728x90
반응형

댓글