ChatGPT와 Github Copilot으로 생산성 향상하기

kshired·2023년 3월 25일
4
post-thumbnail

시작하며

최근에는 개발자들이 더욱 빠르게 개발을 할 수 있도록 다양한 도구들이 제공되고 있습니다. 그 중에서도 ChatGPT와 Github Copilot은 매우 유용한 도구입니다.

ChatGPT는 매우 자연스러운 대화를 통해 구글 혹은 StackOverflow에 검색하는 시간을 단축해주고 있으며, Github Copilot은 반복되는 코드 스니펫을 자동으로 생성하여 생산성을 크게 향상시켜주고있습니다.

이번 글에서는 제가 위 두 도구를 모두 사용하며 얻고 있는 장점과 단점에 대해 알아보겠습니다.

ChatGPT

사실 꽤나 크게 화제가 된 ChatGPT는 모르는 사람이 거의 없을 것이라고 생각합니다.

OpenAI에서 개발한 대화형 인공지능 언어 모델이며, 인간처럼 대화를 이어나가며 정보를 제공하고 질문에 답변하는 능력을 갖추고 있습니다.

얼마전 출시한 GPT-4는 최신 버전의 이 모델로, 이전 세대인 GPT-3보다 더 많은 학습 데이터와 더 큰 모델 규모를 사용하여 높은 성능과 정확도를 제공하고 있습니다.

나는 ChatGPT를 어떻게 사용하고 있는가?

저는 Google 혹은 Stackoverflow에 질문하던 내용들을 ChatGPT에 우선 질문하고, 거기서 만족하지 못할 때 추가로 Google에 검색하는 방식으로 사용을 하고 있습니다.

아래는 실제로 사용해 본 사례입니다.

장점

  • 이전에 검색하던 시간을 크게 줄여주고 있습니다.
  • 예시 코드 스니펫까지 제공하고 있기 때문에, 프로그래밍 문제를 더욱 빠르게 해결할 수 있습니다.

가끔은 변수명이나 함수명 짓는데 도움을 구하기도 하는데, 이것도 꽤나 좋습니다.

단점

  • 특정 시점을 기준으로 학습한 데이터만을 갖고 있기 때문에, 최신 버전의 프레임워크나 기술에 대한 질문이 정확하지 않을 수 있습니다.
  • 학습 데이터 기반이기 때문에, 부정확한 대답을 때때로 줄 때가 있습니다.
    • 회사 다른 분의 말에 따르면, "거짓말을 진짜인 것 처럼 말하는 재주가 있다" 라고합니다.
  • 대화의 맥락을 가끔 기억하지 못하는 경우가 있습니다. 다시 위의 맥락을 설명해야해서, 시간이 드는 경우가 존재합니다.

주의점

보안 이슈

회사에서 사용할 때는 주의해야합니다. API로 호출하지 않고 대화형 웹화면을 사용하는 경우, 대화 데이터를 기반으로 학습할 수 있는 보안 이슈가 있습니다.

이런 것을 우려하기에 현재 Open AI에서는 Opt-Out ( 거부 요청 ) 을 받고 있습니다. 아래의 구글 폼을 제출하면, Opt-Out이 가능합니다.

Opt Out Request Form

부정확성

대부분의 답변의 경우 제대로된 답변을 주는 경우가 많지만, 단점 파트에서도 언급하였듯이 가끔씩 잘못된 정보를 주는 경우가 있습니다. 이는 어쩔 수 없는 학습형 모델의 한계이기 때문에, 사용할 때 꼭 검토가 필요로합니다.

Github Copilot

Github Copilot은 Github에서 개발한 코드 자동완성 도구입니다. 다양한 프로그래밍 언어와 프레임워크를 지원하며, 개발자들의 생산성을 향상시키는 데 도움을 주고 있습니다.

위에서 설명한 ChatGPT와는 달리, IDE에서 바로 사용이 가능하며 현재 개발중인 코드 베이스를 학습하여 그것을 기반으로 코드를 자동완성해줍니다.

나는 Github Copilot을 어떻게 사용하는가?

백엔드 개발자인 저는 DTO 작성 혹은 Documentation 만들기와 같이 귀찮은 작업들을 자주 하고있습니다. 하지만, Copilot과 함께한다면 저는 무섭지 않습니다. 이것을 Copilot이 잘 도와주거든요!

실제로 이렇게 Copilot이 추천해주기도합니다. ( f까지만 쳤는데, 이렇게 전부 완성해주는 Copilot 최고! )

근데 가끔 주석 같은 것을 자동완성하려고 할 때는 무섭습니다.

장점

  • 생산성 향상 : 작성한 코드를 기반으로 자동완성 해주는 경우가 많기 때문에 지루하거나 귀찮은 작업을 대신해줍니다.

다른 사람들은 문제 해결 같은 도움도 얻고 있다고 했지만, 저는 그 정도의 도움까지는 얻지 못했습니다.

단점

  • 부정확한 코드를 생성하는 경우가 있습니다.
  • 회사 코드 스타일과 맞지 않는 코드를 생성하는 경우가 있어, 직접 고치거나 포맷팅을 해야하는 경우가 있습니다.
  • Github의 오픈된 코드 기반으로 자동완성을 제공하기 때문에, 라이센스 문제를 겪을 수 있습니다.

주의점

ChatGPT의 주의점에서 말했듯이, 회사에서 사용하는 경우 주의해야 할 것들이 있습니다.

라이센스 및 코드 유출 가능성과 같은 보안 이슈가 있기에, 사용전 회사의 검토가 필요하며 요즘 제공하고 있는 Github Copilot for Business 도입도 고민해보면 좋을 것 같습니다.

현재 저희 회사는 Github Copilot for Business를 도입하여 사용중입니다.

마치면서

오늘은 ChatGPT와 Github Copilot에 대해 알아보았습니다. 몇몇 사람들은 ChatGPT GPT-4가 출시된 이후로 "개발자는 대체될 것이다"를 외치고 다니시는 것 같던데, 아직은 시기 상조가 아닌가 싶습니다.

개발자가 대체되기 시작하면 다같이 대체되지 않을까 싶기도합니다.

여튼 현재 ChatGPT와 Github Copilot은 개발자 모두의 생산성을 높여주는 툴로써 사용할 수 있으니, 모두 한 번 사용해봐도 좋다고 생각합니다!

profile
글 쓰는 개발자

0개의 댓글