GitHub Copilot : 첫인상
(vladiliescu.net)- 몇 주 사용해 보고 느낀 점
ㅤ→ "3~5년내에 우리 모두는 더 많은 코멘트를 작성하고, 모든 것에 더 설명적인 이름을 사용하고, 훨씬 적은 코드를 작성하고, 수많은 코드 리뷰를 하게 될 것"
- 장점
ㅤ→ 반복적이고, 지겨운, 보일러플레이트 코드 작성에 탁월
ㅤ→ 최소한의 컨텍스트로 데이터셋을 조각내고, 훈련 및 평가하는 코드를 생성 가능
ㅤ→ "이젠 퀵 매크로 작성할 필요가 없음"
- 단점
ㅤ→ 고급 기능에 대해서는 Copliot의 유용성은 미묘함
ㅤ→ 올바른 일을 할 수도/못 할수도 있는 대량의 코드를 생성하는 것은 주의 해야함
ㅤ→ 오래된 버전의 라이브러리를 추천하기도 하고, 구문적으로 올바르지 않은 코드를 사용하기도 하고, 존재하지 않는 ML 알고리즘 파라미터를 채우기도 함
ㅤ→ "항상 주의를 기울여야함"
[ 연구 ]
GPT에 대한 Codex 논문에서 중요한 인사이트를 얻었음
- 가능성
ㅤ→ "Codex는 다양한 방식으로 유용할 수 있음. 예를 들어 사용자를 새로운 코드베이스에 온보딩 하고, 순련된 코더들의 컨텍스트 스위칭을 줄이고, 비 개발자들이 사양을 작성하면 Codex가 드래프트 구현을 만들고, 교육이나 탐색을 도와줄 수 있음"
ㅤ→ 즉 회사의 코드베이스를 학습하고 회사 전체에서 사용되는 패턴이나 모듈을 추천하면, Pattern 과 Practice를 표준화 하는데 도움이 될 것(금새 일어나진 않겠지만)
ㅤ→ 또한 비 개발자들이 사양을 작성할 수 있게 된다는 게 매우 흥분됨. 특히 테스터들. API나 UI를 테스트하기 위해 코드를 작성할 수는 없지만, 뭘 하려는지 설명을 작성할 수 있으므로, 그들이 필요한 대부분의 코드는 Copilot 이 충분히 작성 가능할 정도로 단순하고, 생산성을 크게 높일 수 있을 것. 현재 프리뷰 버전의 Copilot 으로도 이미 어느정도 가능
- 제한점
ㅤ→ Codex 는 실제로 의도한 작업을 제대로 수행하지 않는 솔루션을 제안할 수 있으므로 "코드 리뷰" 가 중요
ㅤ→ 또한 "Automation Bias"(자동화 편향) 때문에 Copilot 이 좋아질수록 생성된 코드에서 버그를 찾으려는 의지가 줄어들고, 생성된 코드의 버그는 미묘하고 식별이 어려울 것
- 잘못된 코드를 추천할 수 있음
저도 예상보다 훨씬 더 추천을 잘 해준다고는 생각했습니다. (영어) 글쓰기 능력이 더 중요해질 것 같고요. 다만 비개발자나 주니어 개발자가 쉽게 비즈니스 로직 코드를 작성할 수 있게 돕는 거랑은 아직은 거리가 꽤 있어 보이고, 숙련된 개발자가 지루한 코드 작성 시간을 줄이는 데는 도움이 상당히 되는 것 같습니다.
단점은 여기 적힌 것과 비슷하게 느꼈습니다. 특히 '구문적으로 올바르지 않는 코드를 추천'하는 경우가 있다는 것에서요. 지금은 오히려 추천이 완전하지 않기 때문에 이렇게 추천했구나, 하면서 조금 참고해서 코드 쓰는 수준인데 추천 수준이 올라갈수록 위에 적힌대로 그걸 그대로 썼다가 생기는 버그가 많아질 것 같긴 해요.