Nvidia는 AI가 코딩을 죽일 것이라고 말하지만 이것이 잘못된 5가지 이유는 다음과 같습니다.

주요 시사점

  • 엔비디아 CEO는 인공지능이 인간의 코딩을 대체할 것이므로, 더 이상 코딩을 가르칠 필요가 없다고 주장합니다.
  • 하지만 인공지능이 항상 완벽한 코드를 생성하는 것은 아닙니다. 코드의 품질을 높이고 개선하기 위해서는 인간의 감독이 필수적입니다.
  • 프로그래머는 인공지능이 제공할 수 없는 문제 해결 능력과 유연성을 가지고 있습니다. 사용자 피드백과 최신 기술 트렌드에 맞춰 코드를 수정하는 능력은 인공지능의 효율성을 능가합니다.

엔비디아 CEO는 인공지능이 모든 코딩 작업을 대신해줄 것이기 때문에 아이들에게 프로그래밍을 가르치는 것은 불필요하다고 말했습니다. 인공지능이 코더의 강력한 조력자가 될 수 있다는 점은 분명하지만, 인공지능이 생성한 코드를 얼마나 많이 사용하든 간에, 사람들은 여러 이유로 프로그래밍을 배워야 합니다.

인공지능과 프로그래밍에 대한 엔비디아 CEO의 발언

2024년 두바이 세계 정부 정상회의에서 엔비디아 CEO 젠슨 황은 가까운 미래에는 모든 프로그래밍 작업이 인공지능에 의해 처리될 것이므로 사람들에게 코딩을 가르치는 것은 무의미하다고 주장했습니다.

“우리의 목표는 사람들이 프로그래밍을 할 필요가 없는 컴퓨팅 기술을 만드는 것입니다. 프로그래밍 언어는 이제 인간의 영역입니다. 이제 세상 모든 사람이 프로그래머가 되는 시대입니다. 이것이 인공지능이 가져다준 혁명입니다.”

인공지능이 작동하는 코드 블록을 생성할 수 있다는 점은 인정하지만, 프로그램을 만들기 위해 프로그래밍 기초를 배울 필요가 없다는 주장은 다소 논란의 여지가 있습니다.

인공지능의 프로그래밍 능력은 어느 정도일까?

젠슨 황의 주장을 분석하기 전에, 왜 그가 이러한 발언을 하게 되었는지 먼저 살펴볼 필요가 있습니다.

현재 인터넷에는 다양한 인공지능 모델이 프로그래밍을 지원하고 있습니다. ChatGPT와 같은 범용 모델은 물론, CodeGPT와 같이 프로그래밍 쿼리 처리에 특화된 모델도 있습니다.

이러한 인공지능 모델은 일반적으로 사용자의 요청을 코드로 변환하는 데 탁월한 성능을 보입니다. 젠슨 황이 강조한 주요 장점은 인공지능을 이용해 코드를 생성하기 위해 프로그래밍을 알 필요가 없다는 것입니다. 원하는 내용을 영어로 말하고 결과를 복사하여 붙여넣기만 하면, (이론적으로는) 요청한 내용을 수행하는 오류 없는 코드를 얻을 수 있습니다.

아이들에게 코딩을 가르쳐야 하는 이유

젠슨 황의 주장은 어느 정도 타당성이 있으며, 그의 발언은 실제 증거에 기반을 두고 있습니다. 하지만 사람들에게 코딩을 계속 가르쳐야 할 여러 가지 이유가 존재합니다.

1. 인공지능 코드는 오류 확인을 위한 지식을 필요로 합니다.

인공지능 코드는 종종 오류 없이 실행될 수 있지만, 완벽한 것은 아닙니다. 코딩 방법을 배우면 인공지능이 생성한 코드를 개선하고 다듬는 데 필요한 지식을 얻을 수 있습니다. CodeGPT 관련 내용에서 언급된 것처럼:

CodeGPT는 코드를 작성할 수 있지만, 항상 최상의 결과를 제공하는 것은 아니므로 주의해야 합니다. 결과물에 오류가 있을 수 있으며, 코딩 모범 사례를 따르지 않을 수도 있습니다. CodeGPT나 다른 인공지능 기반 도구를 사용하여 코드를 작성할 때는, 코드가 수행하는 작업을 먼저 이해하려고 노력해야 합니다. 단순히 복사해서 붙여넣는 행위는 피해야 합니다.

이는 단순한 오류의 문제가 아닙니다. 코드를 읽기 쉽게 만들고, 모든 프로그래머가 알아야 하는 기본적인 프로그래밍 원칙을 준수하는 것이 중요합니다. 인공지능이 생성한 코드를 무비판적으로 사용하면, 코드가 복잡하게 얽혀 문제 해결이 어려워질 수 있으며, 더 나아가 소프트웨어나 웹사이트에 취약점이 발생할 위험도 있습니다.

2. 프로그래머는 경험을 통해 문제를 더 효과적으로 해결할 수 있습니다.

프로그래머의 궁극적인 목표는 문제를 해결하는 것입니다. 자신을 위한 앱을 만들든, 고객을 위한 앱을 만들든, 코드를 사용하여 아이디어를 현실로 구현하는 최적의 방법을 찾아야 합니다.

프로그래머는 앱을 개발하는 과정에서 프로젝트가 종이 위 그림에서 작동하는 프로그램으로 발전하는 과정을 더 잘 이해할 수 있습니다. 인공지능 챗봇은 이전 프로젝트에서 얻은 경험을 바탕으로 더 나은 결과를 도출하는 능력이 부족합니다.

3. 프로그래머는 사용자 요구에 맞춰 코드를 개선할 수 있습니다.

다른 사람을 위한 프로그램을 만들 때는 사용자로부터 피드백을 받을 가능성이 높습니다. 피드백은 고객이 원하는 제품을 얻도록 보장하는 중요한 과정입니다.

사람이 직접 코드를 작성한 경우, 피드백을 반영하여 수정하고 두 번째 버전을 고객에게 제공할 수 있습니다. 반면, 인공지능이 생성한 코드에만 의존하는 경우, 할 수 있는 최선은 인공지능에게 수정 작업을 요청하고 인공지능이 요청을 정확하게 처리하기를 바라는 것뿐입니다. 이 과정에서 오류가 발생하거나, 코드가 이미 가지고 있던 유용한 부분을 재작성하거나, 취약점이 새로 생길 수도 있습니다.

4. 프로그래머는 변화하는 기술 트렌드에 더 빠르게 적응할 수 있습니다.

인공지능 모델은 기존 데이터를 기반으로 학습합니다. 따라서 이미 인터넷에 존재하는 정보를 재구성하는 데에는 능숙하지만, 최신 기술 트렌드를 따라가는 데에는 다소 부족합니다.

프로그래머는 자신이 선택한 언어의 최신 개발 내용을 항상 확인하고, 코드에 이를 반영할 수 있습니다. 또한, 어떤 언어가 특정 작업에 가장 적합한지 판단하고, 필요에 따라 사용하는 언어를 변경할 수 있습니다.

5. 프로그래머는 긴급 패치 요청에 더 빠르게 대응할 수 있습니다.

마지막으로, 코드에 문제가 발생했을 때 이를 수정하기 위해서는 프로그래밍 지식을 가진 사람이 필요합니다. 제로데이 익스플로잇과 같이 긴급한 상황에서는 시간이 매우 중요합니다. 문제를 최대한 빨리 식별하고 패치를 적용해야 합니다.

코드 작성자가 사람이든 인공지능이든 상관없이 둘 다 실수를 할 수 있습니다. 하지만 코드를 이해하는 사람은 문제를 더 쉽고 빠르게 찾고 해결할 수 있습니다. 코드가 어떻게 작동하는지 모르는 사람은 인공지능에게 무엇을 요청해야 할지도 모릅니다.

젠슨 황의 주장이 틀린 것은 아닙니다. 인공지능을 활용하면 이전에는 코딩 경험이 없던 사람도 코드를 생성하고 사용할 수 있습니다. 하지만, 자신이나 다른 사람을 위한 무언가를 만들고자 한다면, 모든 것이 원활하고 효율적으로 작동하도록 기본적인 프로그래밍 지식을 갖추는 것이 필요합니다.