Copilot 도입 검토 및 장점과 단점

November 14, 2023

목차


개요

Copilot은 GitHub에서 개발한 AI 프로그래밍 도우미입니다. 코드를 작성하는 동안 자동 완성 제안을 제공하며 함수의 이름, 주석, 코드의 컨텍스트를 이해하고 그에 따라 적절한 코드를 제안합니다. 또한, 새로운 함수를 작성하는데 도움을 주거나 기존 코드를 이해하고 수정하는데 도움을 줄 수 있습니다.


설치 방법(Visual Studio Code)

Visual Studio Code의 좌측 확장 프로그램에 진입합니다.

copilot-install-1

Copilot을 검색하고, 밑줄 친 프로그램의 설치 버튼을 클릭합니다.

copilot-install-2

설치에 성공하면 우하단에 Copilot 로고가 그려져 있습니다. 이를 통해 현재 Copilot의 사용 가능 여부를 파악할 수 있습니다.

copilot-install-3

Copilot을 처음으로 사용하고자 하시는 분들의 대부분은, Visual Studio Code 내에서 Copilot을 사용할 수 없습니다. Copilot은 개인 사용자의 경우, 월 10달러 혹은 연 100달러의 구독형 서비스이기 때문입니다.

하지만, 제휴 대학의 학생이시라면 Copilot을 무료로 이용할 수 있습니다. 다음 GitHub 페이지에 접속한 뒤, Student Developer Pack을 확인해보세요.

copilot-install-4


개발 중 Copilot의 실사용 예

프레임워크 기초 코드 작성

copilot-initial-1

Copilot은 기초 코드와 같이 모든 개발자들이 돌려쓰는 코드를 쉽고 빠르게 작성하는데 큰 도움을 줄 수 있습니다. 위는 Express 프레임워크의 app.js의 기초 코드 작성에 Copilot의 도움을 받는 사례입니다.

copilot-initial-2

또한 위의 사례와 같이 추가적인 요구를 함으로써 기초 코드 작성에 디테일을 추가할 수 있습니다. 다만, 예시에서는 cors 라이브러리는 추가해줬지만 기본 라우터 및 port 연결을 작성하지 않았습니다.

코드 작성 중 자동 완성 제안

copilot-suggestion-1

Copilot은 변수 및 함수의 네이밍과 그 관계를 파악하여 자동 완성 코드를 제안해줍니다. 위에서 볼 수 있는 것처럼, 연한 회색 글씨로 코드를 추천해주고, 그 코드가 개발자가 작성하려 했던 코드라면 Tab 버튼을 누르는 것만으로도 간단하게 코드가 완성됩니다.

copilot-suggestion-2

간단한 사례가 아니더라도, 실제 코딩 환경에서 Copilot은 작성 중인 코드의 변수 및 함수의 네이밍 뿐만 아니라 코드가 작성되고 있는 파일에서 이미 작성된 코드들 또한 참조하여 자동 완성 코드를 제안합니다. 단, 제가 작성하려 했던 코드는 사실 Copilot이 제안한 코드는 아니었습니다.

즉, Copilot의 해당 기능을 잘 활용하기 위해서는 Copilot이 제안한 코드를 검토하고, 자신이 완성하려 했던 코드의 의도를 실현할 수 있는지 검토할 수 있어야 합니다.

코드 오류 검토

copilot-correction-1

Copilot은 코드 내의 오류를 검토하고, 해당 오류가 무엇 때문에 발생했는지를 파악하여 개발자에게 보고합니다. 이를 통해 오류의 내용을 파악하거나, Copilot이 제시하는 교정된 코드로 내용을 바꾸어 오류를 해결할 수 있습니다. Copilot에게 오류의 내용이나 오류가 발생한 코드의 라인 등의 내용을 추가하여 더 정확하게 물으면, 더 만족스러운 답변을 받을 수 있습니다.

코드 작성

copilot-create-1

Copilot은 적절한 상황과 그 상황에서 실현시키고 싶은 코드 목표를 제시한다면, 상황에 맞으며 목표를 실현할 수 있는 코드를 생성합니다. 더욱 구체적인 상황과, 더욱 구체적인 목표를 제시한다면 더 만족스러운 답변을 받을 수 있습니다.


Copilot의 유용성

Copilot은 생각보다 똑똑하지 않습니다. 더욱 구체적인 상황이나 더욱 구체적인 목표 등을 제시하여야 만족스러운 답변을 얻을 수 있는 것과 더불어, 해당 답변을 그대로 채용해도 되는지의 여부 등의 검토가 끝난 후에야 Copilot이 제안한 답변을 채택할 수 있다는 점을 미루어 볼 때, 몇몇 분들은 “굳이 Copilot을 구독하여 사용할 필요가 있을까?”, 라는 의문을 남길 수 있다고 생각합니다. 기존에 5명의 개발자가 하던 작업이 있었다면, 2명을 해고하고 Copilot을 도입한다고 해서 기존과 똑같이 5명의 효율을 기대하기는 어렵다고 생각합니다. 다시 말해, 글을 작성하는 현재의 Copilot의 성능은 개발자를 대체할 정도라고 평가하기는 어렵습니다.

하지만 Copilot의 본래 개발 목적은 개발자를 대체하기 위함이 아닌 개발자를 돕기 위한 프로그램입니다. Copilot을 잘 활용할 줄 아는 개발자는 Copilot에게 더 정확하게 묻고, 그에 따른 더 만족스러운 답변으로 높은 코드 퀄리티를 쉽게 얻어낼 수 있습니다. 또한 코드 작성 중 단순 반복 작업 형태의 코드 작성이나, 자신이 작성하려 했던 코드를 미리 예측하여 알맞는 코드를 제안할 때, Copilot은 코딩 시간을 획기적으로 줄여줄 수 있습니다. 이는 단순히 코딩하는 시간을 줄여 양의 효율성을 확보할 뿐만 아니라, 쓸 데 없는 작업을 할 필요를 줄임으로써 개발자가 좀 더 자신의 역량이 필요한 작업에 그 역량을 집중할 수 있다는 점에서 질의 효율성 또한 확보할 수 있습니다.


Written by @Keedong Kim

넥스트이노베이션의 기술, 문화, 뉴스, 행사 등 최신 소식 및 넥스트이노베이션이 겪은 다양한 경험을 공유합니다.