AI가 코드를 대신 써도, 이해를 아웃소싱하면 안 되는 이유
Beyond Recall and the Illusion of Competence
AI가 코드를 작성하는 것에 대한 두 가지 극단적 견해(쓸모없다는 주장과 프로그래머를 대체할 것이라는 주장)는 모두 '누가 코드를 쓰는가'에 집중한다는 점에서 핵심을 놓치고 있다. 저자는 코드 작성은 항상 외부 리소스에 의존해 왔으며, 진정한 소유권은 이해에서 비롯된다고 주장한다. 위험한 것은 AI가 코드를 쓰는 것이 아니라, 이해까지 대신하게 하는 것이다. 디버깅 과정에서 시스템에 대한 멘탈 모델을 구축하는 것이 중요하며, AI가 이 과정을 대체하면 '유능함의 착각'에 빠질 수 있다. 특히 주니어 개발자에게 이는 심각한 문제를 초래할 수 있다. 저자는 AI를 적극적으로 활용하되, 이해와 설계는 개발자의 몫으로 남겨야 한다고 조언한다.
AI는 시스템이 작동하도록 만들어 줌으로써, 당신이 시스템을 이해하고 있다는 착각을 만들어낼 수 있다.
HN 토론
31- MarkusQ
> 그래서 스택 오버플로우에서 유용한 코드 조각을 복사하는 것이 항상 용인되어 왔다면
이것은 "항상 용인되어 온" 것이 아닙니다. 얼마 전까지만 해도 copy-pasta는 경멸적인 용어였고, 사람들이 스택 오버플로우에서 코드를 그냥 복사해서 이해하지도 않고 사용했다가 해고된 사례도 있습니다.
- kayo_20211030
> 두각을 나타내는 개발자는 시스템을 이해하는 사람이 될 것입니다.
그것은 항상 사실이었습니다. AI가 그것을 바꾸지는 않습니다. 단지 이해보다 앞서는 몇 가지 요소들을 재배열할 뿐입니다. 볼륨과 속도는 도전 과제이지만, 이해와 판단이 좋은 개발자와 위대한 개발자를 가르는 기준입니다.
참고로, 제 세계에서 "시스템"은 기술 구성 요소뿐만 아니라 모든 조각을 운영하고, 조정하고, 관리하는 인간과 그것을 통제하는 프로세스도 포함합니다.
- WillEMac
소프트웨어에 필요한 중복성에 대해 약간의 오해가 있는 것 같습니다.
예를 들어, 저는 청정 기술 분야에서 일한 적이 있는데, PLC 프로그래밍이 터빈을 제어하는 곳에서는 완전한 이해가 필요합니다. 모든 버그와 관련된 코드 줄에 인간이 관여해야 하며, 그 시간을 들일 가치가 있습니다.
반면에 저는 게임 개발도 하는데, 완전한 디버깅 과정을 이해하는 것이 가치가 있다고 생각하지 않습니다. 예를 들어, 멀티플레이어에서 스페이스바 릴리스를 두 가지에 실수로 바인딩하여 협동 플레이 버그를 일으킨 적이 있습니다. 이 바늘을 건초 더미에서 찾기 위해 디버깅할 필요는 없습니다. 그것은 시간 낭비입니다.
> 코드 작성이 저렴하고 모두에게 접근 가능해지면, 코드 작성은 더 이상 차별화 요소가 되지 않습니다. 두각을 나타내는 개발자는 시스템을 이해하는 사람이 될 것입니다.
특히 한계/경계 조건에 대해 동의합니다. 제가 작업 중인 게임에서, 화면에 표시되는 500마리의 GPU 제어 물고기와 CPU 제어 물고기의 근본적인 이해와 그 한계는 좋은 아키텍트가 되기 위해 필수적입니다. 그렇지 않으면 이 게임은 10fps로 실행될 것입니다.
- jebarker
저는 저자가 설명하는 개발자 스펙트럼의 중간 어딘가에 있습니다. 저는 제한된 코드 작성과 많은 디버깅에 AI를 매일 사용합니다. 저자는 출력을 진정으로 검토하지 않고 생산성의 스릴을 위해 그냥 수락을 클릭할 때 일이 잘못된다는 데 동의합니다. 하지만 디버깅에 AI를 사용한다고 해서 반드시 그렇게 해야 하는 것은 아니라고 생각합니다. 그것은 여전히 선택입니다. AI-인간 팀으로서 저는 복잡한 시스템에서 혼자서는 또는 합리적인 시간 내에 해결할 수 없었을 문제를 디버깅한 경험을 여러 번 했습니다. 이것이 제 능력이 부족하다는 반영이라고 생각하지 않습니다. AI가 제가 절대 가질 수 없는 기술, 예를 들어 클러스터의 다른 컴퓨팅 노드에서 동일한 시스템의 여러 실행에 걸친 방대한 로그를 읽고 상호 연관시키는 능력을 제공하기 때문입니다. 건초 더미에서 바늘을 찾으면, 저는 여전히 시간을 들여 그것이 찾은 것을 이해하고 추론할 수 있습니다.
- ssivark
저자는 소유권에 관한 중요한 점을 제기하지만, 그것은 코드 이해와 디버깅으로 희석되었습니다. 중요한 것은 작성된 코드의 소유권뿐만 아니라 문제 식별과 해결책 선택의 소유권입니다. 저는 최근에 대화 템포라는 약간 다른 관점에서 이에 대해 썼습니다 [1]. 하지만 공통된 핵심은 우리가 AI가 인지적 동반자로 행동하여 상황을 이해하고, 문제를 식별하고, 결정을 내리는 데 도움을 주기를 원한다는 것입니다. AI가 성급하게 문제를 "해결"하고 사용자에게 방금 무슨 일이 일어났는지, 그것이 의도와 어떻게 약간만 관련이 있었는지 알아내는 부담을 지우는 대신에 말입니다.
[1] https://woventhought.substack.com/p/ai-assistants-need-adapt...