본문 바로가기
IT

내가 더 이상 GitHub Copilot을 사용하지 않는 이유 : (지극히 개인적이고 주관적인!) 의견 공유해봅니다.

by 작은비움 2024. 7. 20.
반응형

https://www.youtube.com/watch?v=rMg-0sBEloA

 

내가 더 이상 GitHub Copilot을 사용하지 않는 이유

안녕하세요, 오늘은 제가 더 이상 GitHub Copilot을 사용하지 않는 이유와 이것이 왜 특히 초보 개발자나 코딩을 배우는 학생들에게 해로울 수 있는지에 대해 이야기해 보려고 합니다. 저는 GitHub Copilot의 초기 프리뷰 초대장을 받은 이후로 오랫동안 사용해 왔습니다. 하지만 몇 달 전 새로운 강의를 녹화하기 위해 Copilot을 비활성화한 이후로 다시는 활성화하지 않았습니다. 이 과정에서 개발자로서 제가 변했다고 느꼈고, 이는 저에게 긍정적이지 않았습니다.

새로운 기술의 도입과 그 함정

Cal Newport의 책 'Deep Work'에서 그는 대부분의 사람들이 새로운 기술을 단순히 존재하기 때문에 채택한다고 말합니다. 우리는 새로운 기술이 우리의 목표를 달성하고 의미 있는 작업을 하는 데 실제로 도움이 되는지 평가하지 않고 받아들입니다. 많은 사람들이 모든 기술 발전이 본질적으로 유익하다고 가정하고, 단지 새로운 것이거나 유행한다고 해서 유용하다고 생각합니다. 최근 AI의 가능성을 과대평가하는 많은 채널들을 보면서, 저는 반대의 견해를 제공하고 AI가 개발자에게 도움이 되지 않을 뿐만 아니라 오히려 더 나쁜 개발자로 만들 수 있다는 점을 공유하고자 합니다.

(이미지를 입력하세요)

초보자와 학생들에게 Copilot의 문제점

코딩을 배우는 사람이라면 GitHub Copilot과 ChatGPT가 친구가 아니라 적이 될 수 있습니다. 저는 처음에는 Copilot과 ChatGPT가 코딩을 배우는 데 더 좋고 쉬울 것이라고 생각했지만, 이는 큰 오산이었습니다. Copilot을 사용하여 새로운 언어를 배울 때, 10번 중 10번은 결국 비활성화하게 됩니다. Copilot을 사용하면 코딩의 어려움을 빼앗기게 됩니다. 새로운 언어로 코드를 더 빨리 작성할 수 있어 생산적이라고 느껴지지만, 실제로는 뇌에 깊게 새겨지지 않습니다. 이는 마치 가공된 오렌지 주스를 마시는 것과 같습니다. 겉보기에는 오렌지 주스 같고 맛도 비슷하지만, 실제로는 설탕과 인공 향료가 대부분이고, 진짜 오렌지의 비타민을 제공하지 않습니다.

학습과 고통의 관계

학습은 어려움을 겪어야 합니다. 학습은 편안해야 하는 것이 아니라, 산을 오르는 것처럼 느껴져야 합니다. Copilot과 ChatGPT는 땀 흘리지 않고 답을 제공합니다. 심지어 그 답이 최고 품질이라고 해도, 답을 얻는 과정에서 배우는 것이 아닙니다. 오류를 검색하고 해결하는 과정에서 배우는 것이 중요합니다. ChatGPT는 하나의 답만 제공하며, 그것이 올바른 것이라고 확신합니다. 반면, Stack Overflow를 통해 여러 답을 보고 어떤 것이 좋은지 논쟁을 볼 수 있습니다.

오류 디버깅의 중요성

오류를 읽고 디버깅하는 능력은 매우 중요한 기술입니다. 이는 오류 메시지를 통해 원인을 이해하고 디버거로 프로그램의 각 줄을 조사함으로써 개발됩니다. 빠른 수정은 이러한 경험을 빼앗아갑니다. 실수와 버그는 최고의 교사입니다. 잘못된 것을 이해하고 고치는 경험은 매우 중요합니다. 시험의 모든 답을 받는 것은 시험 공부와 같은 두뇌 연결을 만들어내지 않습니다.

의존성의 문제

뇌는 최소한의 노력 경로를 따르도록 프로그램되어 있습니다. 학습 과정에서 어려움을 제거하는 도구가 있으면 그 도구에 의존하게 됩니다. 마이크로소프트가 학생들에게 무료로 Copilot을 제공하는 것은 위험한 함정이라고 생각합니다. 스마트폰이 등장하기 전에는 사람들이 기본적인 계산을 더 잘하고 빨랐습니다. Copilot을 비활성화하고 코드를 작성해 보면 얼마나 자주 Copilot의 자동 완성을 기다리는지 알 수 있을 것입니다.

코딩을 배우는 과정의 중요성

코딩을 배우는 과정에서 어려움은 필수적입니다. 편안함은 선택이 아니며, 학습 세션 후에는 피곤함을 느껴야 합니다. 뇌가 운동한 것처럼 느껴져야 합니다. 답을 바로 제공하는 도구는 학습을 방해하고 함정이 될 수 있습니다.

코드 품질 문제

GitHub Copilot과 ChatGPT는 공개적으로 사용 가능한 모든 코드로 학습되었습니다. 대부분의 코드가 높은 품질이 아니며, 이는 코드 생산성 증가와는 별개로 코드 변동성 증가와 관련이 있습니다. 이는 유지 관리와 리팩터링 시간을 증가시키며, DRY 원칙을 지키지 않도록 만듭니다. 경험이 부족한 개발자는 좋은 코드와 나쁜 코드를 구별하기 어려워 나쁜 습관을 익힐 수 있습니다.

경험 많은 개발자와 초보자의 차이

경험이 많은 개발자는 Copilot의 제안을 평가할 수 있는 기준이 있지만, 초보자나 새로운 언어를 배우는 개발자는 그렇지 않습니다. 따라서 Copilot의 제안을 그대로 수용하여 나쁜 습관을 들일 수 있습니다. 경험 많은 개발자는 Copilot의 제안이 좋을지 아닐지를 판단할 수 있지만, 초보자나 새로운 언어를 배우는 개발자는 그런 기준이 없습니다.

결론

코딩을 배우는 과정에서 어려움은 필수적입니다. 편안함은 선택이 아니며, 학습 세션 후에는 피곤함을 느껴야 합니다. 뇌가 운동한 것처럼 느껴져야 합니다. 답을 바로 제공하는 도구는 학습을 방해하고 함정이 될 수 있습니다. 경험이 부족한 개발자는 Copilot의 제안을 평가할 수 없기 때문에 나쁜 습관을 들일 수 있습니다.

 

태그

코딩, 학습, GitHub Copilot, ChatGPT, 개발자, 초보자, 문제 해결, 디버깅, 코드 품질, AI

반응형

댓글