
내가 더이상 코파일럿을 쓰지않는 이유
요약
본 영상은 GitHub Copilot 사용을 중단한 이유와, 특히 코딩 학습자에게 AI 도구가 오히려 해로울 수 있다는 관점을 제시합니다. 저자는 AI가 제공하는 즉각적인 답이 진정한 학습 과정(노력과 어려움)을 대체할 수 없으며, 스스로 문제를 해결하고 과정을 거치는 것이 중요하다고 강조합니다.
핵심 포인트
- AI는 유용하지만 모든 상황에 적합하지 않으므로 사용 시점을 고려해야 합니다.
- 코딩 학습은 어려움을 동반해야 하며, AI의 도움만으로는 깊이 있는 이해가 어렵습니다.
- Copilot은 단일 답을 확신하며 제시하여, 오류를 스스로 디버깅하는 능력을 저해할 수 있습니다.
- 진정한 학습은 정답을 얻는 과정보다 문제를 찾아가는 과정을 통해 이루어집니다.
Video: 내가 더이상 코파일럿을 쓰지않는 이유
Channel: 노마드 코더 Nomad Coders
Duration: 7m 35s
Source: subtitle (auto, ko)
Transcript:
오늘은 제가 더 이상 GitHub Copilot을 사용하지 않는 이유와, 특히 주니어 개발자나 코딩을 배우는 학생들에게 Copilot이 해로울 수 있다고 생각하는 이유를 공유하고 싶습니다. 오래전 사전 체험 초대를 받은 이후로 Copilot을 사용해 왔습니다. 몇 달 전 새 강의를 녹화하기 위해 Copilot을 비활성화했고, 그 이후로 계속 비활성화 상태였습니다. Copilot을 비활성화한 후 개발자로서 제가 원치 않는 방향으로 변했다는 것을 깨달았습니다. K. 뉴포트의 저서 '딥 워크'에서 그는 대부분의 사람들이 새로운 기술이 존재한다는 이유만으로, 그것이 자신의 목표 달성이나 의미 있는 결과물 생산에 도움이 되는지 여부를 제대로 평가하지 않고 받아들인다고 말합니다. 우리 대부분은 모든 기술 발전이 본질적으로 유익하다고 생각하고, 단지 새롭거나 유행한다는 이유만으로 유용하다고 여깁니다. 수많은 채널에서 AI를 과대광고하고 AI의 멋진 기능들을 보여주는 만큼, 저는 AI가 개발자에게 도움이 되지 않을 뿐만 아니라 오히려 더 나쁜 개발자로 만들 수 있다는 제 생각을 여러분과 공유하는 것이 좋겠다고 생각했습니다.
분명히 말씀드리지만, 저는 GitHub Copilot과 AI가 전반적으로 매우 유용하고 도움이 된다고 생각합니다. AI는 분명 유용한 도구이지만, 모든 것에는 때와 장소가 있다고 생각합니다. AI는 모든 곳에서, 항상 사용될 수 있습니다. 먼저, 코딩을 배우는 학생이라면 코파일럿(Copilot)과 CHBT가 친구가 아닌 적이 될 수 있다고 생각하는 이유를 말씀드리겠습니다. 저는 15년 전에 코딩을 배울 때보다 코파일럿 과 CHBT가 있는 시대에 배우는 것이 더 쉽고 좋을 거라고 생각했습니다. 하지만 코파일럿을 사용하면서 새로운 언어를 배울 때마다 10번 중 10번은 결국 사용을 중단하게 되었습니다. 코파일럿은 코딩 학습의 어려움을 덜어주었고, 새로운 언어로 코드를 더 빨리 작성하고 생산성을 높이며 오류를 빠르게 수정할 수 있다는 착각을 불러일으켰습니다. 하지만 모든 것이 겉보기에는 단순하고, 머릿속에 제대로 와닿는 것은 없었습니다. 마치 가공된 오렌지 주스를 마시는 것처럼 인위적이고, 인공적인 느낌이었습니다.
겉보기에는 오렌지 주스 같고, 맛도 오렌지 주스 같지만, 실제로는 오렌지 성분이 조금 들어있는 것과 같았습니다. 하지만 오렌지는 대부분 설탕과 인공 향료로 이루어져 있고, 진짜 오렌지가 주는 비타민은 들어있지 않습니다. 저는 학습에는 어려움이 따른다고 생각합니다. 학습은 편안해서는 안 됩니다. 산책처럼 쉬워서도 안 되고, 산을 오르는 것처럼 힘들어야 합니다. Co-Pilot과 Chpt는 땀 흘릴 필요 없이 답을 제시하지만, 그 답의 질이 최고 수준은 아닙니다. (이 부분은 곧 자세히 설명하겠습니다.) 답을 얻는 것 자체가 학습을 의미하는 것은 아닙니다. 답을 찾아가는 과정 자체가 더 깊은 수준에서 학습을 돕고 새로운 개념을 머릿속에 영구적으로 각인시켜 줍니다. 오류가 발생했을 때 바로 구글 검색을 하는 것도 마찬가지입니다. 이상적인 방법은 아니지만, Ch-Pilot에게 질문하는 것보다는 낫습니다. 적어도 오류를 구글에서 검색 하고 Stack Overflow에 가면 여러 사람들이 각자의 의견을 제시하며 정답인지 오답인지 논쟁하는 것을 볼 수 있습니다.
반면 Ch-Pilot은 단 하나의 답만 제시하고, 그 답이 틀렸을 때도 확신에 차서 답만 내놓습니다. 특히 새로운 프로그래밍 언어나 라이브러리를 배울 때는 Ch-Pilot과 Co-Pilot이 마치 정신분열증 환자처럼 횡설수설하며 학습을 방해하는 경우가 많습니다. 오류를 읽고 디버깅하는 방법을 아는 것은 매우 중요한 기술입니다. 이 기술은 오류 메시지를 직접 접하고 디버거를 사용하여 프로그램의 한 줄씩 실행하며 오류의 원인을 파악하는 과정을 통해서만 개발될 수 있습니다. 오류를 빠르게 해결하는 것은 이러한 경험을 저해합니다. 실수와 돈, 심지어 가장 어리석은 실수조차도 최고의 스승입니다. 잘못된 것을 직접 해보고 왜 잘못되었는지 이해하고 스스로 고치는 경험보다 더 좋은 것은 없습니다. 시험에 대한 모든 답을 제공받는 것은 시험 공부를 통해 얻는 것과 같은 두뇌 연결을 만들어내지 못합니다. 우리 뇌는 최소한의 노력을 기울이는 경로를 택하도록 프로그램되어 있기 때문입니다. 학습 과정에서 어려움을 없애주는 도구는 그 도구에 의존하게 만들 수 있습니다.
그렇기 때문에 마이크로소프트가 학생들에게 코파일럿을 무료로 제공하는 것은 매우 위험한 함정이라고 생각합니다. 스마트폰이 등장하기 전에는 사람들이 일상적인 수학 계산을 더 잘하고 더 빠르게 했습니다. 지금은 가장 기본적인 계산에도 계산기를 사용하는 사람들을 볼 수 있습니다. 자신이 코 파일럿에 얼마나 의존하는지 알고 싶다면 코파일럿을 끄고 코드를 작성해 보세요. 코파일럿의 자동 완성 기능을 기다리며 코드를 작성하는 횟수를 확인해 보세요. 결론적으로 코딩을 배우는 데 있어서 어려움은 필수적이라고 생각합니다. 불편함은 선택 사항이 아니며, 공부 후에는 피곤함을 느껴야 합니다. 마치 뇌가 운동을 한 것처럼 느껴져야 합니다. 어려움을 없애고 바로 답을 주는 도구는 학습에 도움이 되지 않는다고 생각합니다. 코드 품질에 대한 함정을 기억하는 것이 중요합니다. GitHub Copilot과 Chat GPT는 공개적으로 사용 가능한 모든 코드를 기반으로 학습되었으며, 대부분의 코드는 품질이 높지 않습니다. Copilot을 사용하면 개발자 생산성이 향상된다는 연구 결과도 있지만, Copilot 사용이 코드 변경률 증가와 밀접한 관련이 있다는 연구 결과도 있습니다.
코드 변경률이란 짧은 시간 내에 되돌려지거나 교체되는 코드 라인의 비율을 의미합니다. 즉, Copilot은 오류가 있거나 최적화되지 않은 코드를 생성하여 유지 관리 및 리팩토링 시간을 증가시킨다는 뜻입니다. 같은 연구에서는 Copilot이 코드 재사용과 DRY 원칙(반복하지 마세요)을 저해한다는 사실도 밝혀냈습니다. Copilot은 기존 함수의 리팩토링을 제안하지 않고 항상 새로운 코드를 생성하기 때문에 이는 당연한 결과입니다. 연구에 따르면 이는 복사 붙여넣기와 중복 코드 증가를 부추기는 요인이며, 이는 미래 개발자들이 유지 관리하기에 악몽과 같은 일입니다. 숙련된 개발자는 코파일럿의 제안이 좋은지 아닌지를 판단할 수 있습니다. 왜냐하면 그들은 수년간의 경험을 통해 좋은 코드와 나쁜 코드를 구분하는 기준을 만들어 놓았기 때문입니다. 주니어 개발자나 새로운 언어를 배우는 개발자는 아직 그러한 기준이 없기 때문에 생각을 코파일럿에 입력하고 코파일럿이 제시하는 해결책을 그대로 받아들이기 쉽습니다. 그 결과 나쁜 습관을 들이고 형편없는 결과물을 만들어낼 수 있습니다.
숙련된 개발자라도 코파일럿이 주니어 개발자보다 해로운 영향을 덜 미칠 것이라고 생각하지만, 특히 빠르게 생산성을 높이고 싶다면 생각을 코파일럿에 입력하는 옵션은 항상 존재합니다. 문제 해결은 기술이며, 연습하지 않으면 서서히 잊어버리고 서투르게 됩니다. 코파일럿에게 문제를 해결하도록 맡길수록 문제 해결 능력은 더욱 떨어집니다. 저는 개발자로서 저의 가치를 결정하는 것은 코파일럿이 생성한 코드를 읽는 능력이 아니라 문제를 해결하는 능력이라고 생각합니다. 그래서 저는 제가 잘하고 싶은 기술을 연습하는 것을 선택합니다. 아마도 수면 부족 때문일지도 모르겠습니다. 최근 아빠가 되어서 좀 예민해지긴 하지만, 마이크로소프트에 돈을 내고 코파일럿을 사용하는 게 너무 어이가 없어요. 마이크로소프트는 제 코드와 행동 패턴을 기반으로 코파일럿을 학습시키고 개선하는데, 저는 코파일럿에 의존하게 되고 결과적으로 제 실력은 떨어지게 되잖아요. 댓글에 누군가는 " 실력 문제야"라거나 "도구가 아니라 사용 방식이 문제야"라고 할 거라는 걸 알아요.
어느 정도는 동의해요. 제가 코파일럿을 잘못 사용하고 있거나, 너무 의존하는 게 게으른 걸지도 몰라요. 하지만 저만 그런 건 아닐 거라고 생각해요. 코파일럿은 오용하기 너무 쉬운 도구인 것 같아요. 코파일럿을 반복적인 코드 작성에만 사용하고 문제 해결 시에는 코파일럿의 제안을 모두 거부할 수도 있겠지만, 그런 제안들은 결국 코드 작성 방식에 영향을 미치고, 결정 피로를 유발하고, 문제 해결의 어려움을 없애버릴 수도 있잖아요. 그렇다면 의식적으로 사용을 피해야 하는 도구에 돈을 지불할 이유가 있을까요? 코파일럿에 반복적인 코드만 자동 완성해 주고, 나머지는 조용히 구석에서 지켜보는 '보일러플레이트 전용' 모드가 있었으면 좋겠어요. 문제를 해결할 시간입니다. 이건 제 개인적인 의견일 뿐이고, 제가 틀렸을 가능성도 크다는 걸 알고 있습니다. 모든 건 제 잘못이죠. 하지만 코파일럿을 비활성화한 후로 제가 작성하는 코드에 대해 훨씬 더 만족감을 느끼고, 새로운 것을 배우거나 사용할 때 지식이 머릿속에 더 탄탄하게 자리 잡는 것 같습니다.
제가 작성한 코드에 대한 소유권을 느끼고, 제가 생각해낸 해결책들을 더 깊이 이해하는 것 같아요. 왜냐하면 그냥 주어진 게 아니라, 시행착오를 거치고 배우면서 얻은 것이기 때문입니다. 이런 경험이 장기적으로 저를 더 나은 소프트웨어 개발자로 만들어준다고 생각합니다. 다시 한번 말씀드리지만, 이건 제 개인적인 의견일 뿐입니다. 여러분의 경험은 다를 수도 있습니다. 제품 관리자가 끊임없이 기능을 요구해서 금요일 밤을 편하게 보내고 싶을 수도 있고, 아니면 코파일럿이 가장 빛을 발하는 보일러플레이트 코드를 많이 작성해야 할 수도 있습니다. 어떤 도구를 사용하든, 자신이 좋아하고 업무 효율을 높이는 데 도움이 된다고 생각하는 도구를 사용하면 됩니다. 코파일럿 이 도움이 된다면 코파일럿을 사용하고, 다른 도구가 도움이 된다면 다른 도구를 사용하면 됩니다. 개인적으로 저는 당분간 코파일럿을 활성화할 생각이 없고, 만약 활성화하게 된다면 그 이유를 알려드리겠습니다. 댓글로 여러분의 생각을 알려주세요. 다음 영상에서 만나요.
안녕!
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube 노마드 코더 (개발)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기