- 프로그래밍 학습은 더 이상 의미가 없는 것일까? -- 코드 생성 AI로 인해 가속화되고 있는 IT 인재 부족
-
- 카테고리미래기술,전망/첨단산업
- 기사일자 2024.6.21
- 신문사 Nikkei X-TECH
- 게재면 Online
- 작성자hjtic
- 날짜2024-07-05 17:22:56
- 조회수180
Nikkei X-TECH_2024.6.21
프로그래밍 학습은 더 이상 의미가 없는 것일까?
코드 생성 AI로 인해 가속화되고 있는 IT 인재 부족
프로그램 코드를 제공하는 생성 AI(인공지능)의 등장으로 소프트웨어 개발의 생산성은 크게 향상되었다. 수많은 기업들의 기술 고문을 맡고 있는 와다(和田) 엔지니어는 생성 AI에 대해 “지금까지 경험한 것 중에서 가장 큰 게임 체인저”라고 표현한다. 소프트웨어 개발 분야에서는 지금까지 수많은 신기술들이 등장했지만, 생성 AI는 그러한 기술들보다 훨씬 큰 임팩트를 가지고 있다고 한다.
그것을 상징하는 서비스가 미국 GitHub의 ‘GitHub Copilot’이다. 코드를 어느 정도 작성하면 GitHub Copilot이 이어서 작성해준다. “30초 정도 걸리는 코드를 약 2초 만에 작성할 수 있다”(와다 엔지니어)라고 한다.
일본의 보수적인 대기업에서는 GitHub Copilot의 학습 데이터에 지적 재산 문제가 숨어 있을 가능성이 두려워 채택을 망설이는 경우도 있다. 하지만, 생산성 향상을 중시하는 스타트업이나 메가 벤처기업의 경우, 사용하지 않는 곳이 드물 정도로 메이저한 서비스로 자리잡고 있다. "이제 GitHub Copilot 없이는 개발을 생각할 수 없다"라는 엔지니어의 목소리를 자주 들을 수 있다.
풍부한 개발 경험을 가진 시니어(상급) 엔지니어에게 작성하려고 하는 코드를 대신 작성해 주는 GitHub Copilot은 든든한 아군이다. 기계가 단순 작업을 대신 해줌으로써 보다 창조적인 일에 시간을 쓸 수 있게 된다.
그러나, GitHub Copilot에는 단점도 있다. 주니어(초급) 엔지니어가 사용하면 오히려 해가 될 수 있는 것이다. 와다 엔지니어는 “주니어 엔지니어의 경우, 어떤 코드를 써야 하는지 알지 못한다. 작성하고 싶은 코드가 없기 때문에 GitHub Copilot의 제안을 그대로 받아들일 수밖에 없다”라고 지적한다.
와다 엔지니어에 따르면, GitHub Copilot가 문제가 있는 코드를 출력하는 경우는 적기 때문에, 제안을 그대로 받아들여도 그다지 문제가 없을 가능성도 있다고 한다. 그러나, 코드의 의미를 이해하지 못하면 리뷰에서 그 코드를 쓴 이유를 묻는 질문에 대답할 수 없다.
또한, 자신이 의미를 이해하지 못하는 코드는 수정할 수 없다. 즉, 유지보수를 할 수 없는 코드가 시스템에 섞이게 된다. 시스템 전체의 유지보수 운용을 생각하면 이것은 큰 문제가 된다.
향후에는 GitHub Copilot을 능숙하게 사용할 수 없는 레벨의 주니어 엔지니어는 존재 의미 자체가 없어질 것이다.
와다 엔지니어는 현재의 코드 생성 AI가 가진 프로그래밍의 실력을 “주니어 엔지니어와 시니어 엔지니어의 중간 정도”라고 표현한다. 경험이 적은 엔지니어가 작성한 코드보다 다수의 코드를 학습한 생성 AI가 출력한 코드의 품질이 더 높은 것이다.
편리한 기계보다 능력이 뒤떨어지는 사람이 설 자리는 없다. 잔인한 구도이지만 현실이다. 이미 프로그래밍 능력을 가진 사람은 생성 AI의 이점을 누릴 수 있는 반면, 능력이 부족한 사람은 가차없이 생성 AI에게 설 자리를 빼앗길 것이다.
-- 생성 AI가 낳은 ‘죽음의 계곡’ --
필자는 코드를 생성할 수 있는 AI의 등장 이후, ‘과연 미경험자가 프로그래밍을 배우는 의미가 있을까?’라는 생각을 계속 해왔다.
과거에는 프로그래밍 교실에서 타 분야의 프로그래밍 미경험자가 프로그래밍을 배워 IT업계로 이직하는 것이 유행이었던 시기도 있었다.
그러나 이젠 생성 AI가 미숙한 프로그래머보다 더 일을 잘한다. 프로그래밍을 조금 배운 정도로는 프로가 되기 어렵다. 이러한 상황에서 진지하게 프로그래밍을 배우려는 생각이 들지 의문이다.
생성 AI가 프로그래밍 학습에 방해가 되는 경우도 있다. 초보자가 프로그래밍을 배우는 방법 중 하나로 ‘사경(寫經)’이 있다. 해설서에 실린 샘플 코드를 스스로 한 글자씩 입력해 프로그램 동작을 확인하는 방법이다. 실제로 직접 입력해봄으로써 프로그래밍에 대한 이해가 깊어진다.
그러나 GitHub Copilot이 활성화되어 있을 경우, 한 글자씩 입력하려고 해도 이어지는 코드가 자동으로 보완되기 때문에 학습이 되지 않는다. 이러한 경우에는 GitHub Copilot을 끄면 되기 때문에 문제가 되지 않지만, 프로그래밍 실력이 부족한 상태에서 GitHub Copilot의 코드 보완에 익숙해지면 실력이 늘지 않게 될 가능성도 있다.
프로그래밍에서 GitHub Copilot 등과 같은 생성 AI를 잘 다룰 수 있을지는 AI의 출력 코드가 적절한지를 판단할 수 있을지 여부에 달려 있다. 출력된 코드의 의미를 100% 이해한 다음 전체에서 차지하는 위치를 정확하게 파악해야 한다. 코드가 적절하지 않다고 판단될 경우에는 다른 후보를 출력시키거나 힌트가 되는 코드를 추가할 필요가 있다.
이러한 제대로 된 판단을 할 수 있는 프로그래머가 되기 위해서는 어느 정도의 경험이 필요하다. 하지만 생성 AI의 등장으로 실력이 부족한 프로그래머가 소프트웨어 개발 직종에 종사하기 어려워졌다.
아무리 뛰어난 프로그래머라도 반드시 프로그래밍을 시작한 시기, 즉 초보였던 시기가 있다. 하지만 생성 AI의 등장으로 제대로 된 프로그래머가 되기까지의 사이에 '직업이 될 수 없는 암흑의 영역', 말하자면 '죽음의 계곡'이 생겨난 것이다. 이로 인해 미경험자가 프로그래밍을 배우는 큰 메리트 중 하나가 없어졌다.
우수한 인재를 늘리려면, 그 전제로 초급자의 넓은 저변이 필요하다. 하지만 생성 AI의 영향으로 프로그래밍을 배우려는 사람이 줄어들 가능성이 있으며, 이로 인해 인재 부족이 가속화될 수 있다.
그렇지 않아도 소프트웨어 엔지니어가 부족하다고 알려져 있다. 미래에는 우수한 소프트웨어 엔지니어가 마치 희소 자원처럼 취급 받게 될 것이다.
-- 진짜 문제는 '의미를 이해하려고 하지 않는 것' --
이것은 일본 기업의 디지털 트랜스포메이션(DX)의 발목을 잡을 수 있는 심각한 문제이다. 반면, 개인의 입장에서는 오히려 기회이기도 하다. 노력해서 ‘죽음의 계곡’을 넘을 수 있으면 희귀한 고급 인재로서의 미래가 열릴 것이기 때문이다.
지금까지 필자는 마치 GitHub Copilot가 프로그래밍 학습에 유해한 것처럼 말했다. 그러나 실제로는 프로그래밍 학습에 도움을 줄 수 있다.
예를 들면, GitHub Copilot에는 표시된 코드의 의미를 채팅으로 물어보면 해설해주는 기능이 있다. 이러한 기능을 활용하면 코드에 대한 이해를 높일 수 있다.
본질적인 문제는 코드의 의미를 이해하지 못하는 것이 아니다. 코드의 의미를 이해하려고 하지 않는 것이다. GitHub Copilot을 비롯한 생성 AI는 그것을 사용하는 사람의 마음가짐에 따라 독이 될 수도 있고 약이 될 수도 있다.
오히려, 기계가 출력할 수 있는 정도의 코드를 작성하는 것이 직업으로 성립하고 있던 것이 이례적이었을지도 모른다. 모든 직업에 있어서 프로가 되는 것은 쉬운 일이 아니다. 젊은 세대는 생성 AI를 자신의 아군으로 만들어 우수한 소프트웨어 엔지니어로 성장하길 바란다.
-- 끝 --
Copyright © 2020 [Nikkei XTECH] / Nikkei Business Publications, Inc. All rights reserved.